2016-09-21 6 views
5

विफल रहा है एक नई एक्सकोड परियोजना में डीबग और रिलीज कॉन्फ़िगरेशन हैं। मैंने "डेवलपमेंट" नामक "प्रोजेक्टनाम> जानकारी" के तहत एक नया जोड़ा है, जो अब "डीबग" का डुप्लिकेट है।नया एक्सकोड कॉन्फ़िगरेशन और योजना बनाई गई - लिंकर अचानक

मैं विकास मोड में ऐप बनाने के लिए एक नई योजना बनाना चाहता था, इसलिए मैंने "प्रोजेक्टनाम" योजना को डुप्लिकेट किया और इसे "डेवलपमेंटशेम" नाम दिया।

मैंने "रन" और "संग्रह" के लिए बिल्ड कॉन्फ़िगरेशन को नए "विकास" कॉन्फ़िगरेशन में सेट किया है जो मैंने बनाया है।

मैं अभी भी मूल योजना बनाने में सक्षम हूं।

मैं जब परियोजना के विकास योजना के साथ कॉन्फ़िगर किया गया है भी आवश्यक पुस्तकालयों के सभी निर्माण करने में सक्षम हूँ, लेकिन जब मैं जोड़ने चरण के लिए मिलता है, मैं त्रुटि मिलती है:

ld: library not found for -lRNCookieManagerIOS clang: error: linker command failed with exit code 1 (use -v to see invocation)

होने के नाते आईओएस विकास के लिए अपेक्षाकृत नया, मुझे सच में यकीन नहीं है कि समस्या क्या हो सकती है। चूंकि मैंने सबकुछ डुप्लिकेट किया है, इसका मतलब यह नहीं होना चाहिए कि वे वैसे ही व्यवहार करते हैं? मूल और नई योजनाओं के बीच क्या हो सकता है पर विचार?

उत्तर

18

समस्या यह है कि एक्सकोड आपके कस्टम कॉन्फ़िगरेशन के नाम पर एक फ़ोल्डर के अंदर पुस्तकालयों को ढूंढने की अपेक्षा करेगा। आप अपने द्वारा उपयोग की जाने वाली प्रत्येक लाइब्रेरी में कस्टम कॉन्फ़िगरेशन जोड़ सकते हैं, या रिलीज कॉन्फ़िगरेशन के माध्यम से बनाए गए पुस्तकालयों का उपयोग करने के लिए नीचे दिए गए चरणों का बेहतर पालन कर सकते हैं।

कदम:

  • अपने लक्ष्य का चयन के लिए
  • ओपन बिल्ड सेटिंग टैब
  • खोज 'लाइब्रेरी खोज पथ'
  • आप डीबग के साथ अपने नए विन्यास नाम देख सकते हैं और रिलीज करेंगे
  • अपने नए कॉन्फ़िगरेशन नाम के बगल में स्थित स्थान को डबल-क्लिक करें
  • "$(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME)"
  • 0 दर्ज करें
  • सत्य पर रिकर्सिव सेट करें।

enter image description here

  • बाहर निकलें संवाद और आप देखना चाहिए:

enter image description here

(inspired by this post)

+1

प्रेरणा के लिए धन्यवाद। मैं एक प्रतिक्रिया-मूल परियोजना का निर्माण कर रहा था और मैंने जो किया था वह 'प्रति-कॉन्फ़िगरेशन बिल्ड उत्पाद पथ' और 'प्रति-कॉन्फ़िगरेशन इंटरमीडिएट बिल्ड फ़ाइलें पथ' को '$ (PROJECT_TEMP_DIR)/रिलीज़ $ (EFFECTIVE_PLATFORM_NAME) 'में बदलने के लिए किया गया था। मुझे घंटे ले लिया, धन्यवाद एक्सकोड। – tropicalfish

+0

परफेक्ट - इस मुद्दे को ठीक किया गया जहां एक नई योजना जोड़ना चीजें तोड़ रहा था। हो सकता है कि प्रतिक्रिया-मूल को 'नई योजना' सीएलआई सेमीड जोड़ना चाहिए जो हमारे लिए यह सब कुछ करेगा (नहीं कि वहां बहुत कुछ है - लेकिन बाद में ट्रैक के नीचे और चीजों की आवश्यकता हो सकती है) – James111

5

Xcode 8.3.2 थोड़ी अलग परिवर्तन की जरूरत है।

इसे काम करने के लिए, आपको अपनी कस्टम बिल्ड कॉन्फ़िगरेशन के लिए Per-configuration Build Products Path को बदलने की आवश्यकता है। उदाहरण के लिए, मेरे पास Internal बिल्ड कॉन्फ़िगरेशन है। उस क्षेत्र में, $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) के बजाय, मैंने $(BUILD_DIR)/Release$(EFFECTIVE_PLATFORM_NAME) डाला, और अब यह काम करता है :)।

+0

संपादन 6 से अधिक charachters होना चाहिए और यह यह एक मापने वाला एक चार सुधार है: यह प्रति-कॉन्फ़िगरेशन बिल्ड उत्पाद पथ है :) – jonasl

+0

क्या आपने कभी भी के साथ समस्या का सामना किया है "सुनिश्चित करें कि आप एक पैकेजर सर्वर चला रहे हैं या आपके एप्लिकेशन बंडल में .jsbundle फ़ाइल शामिल की है।" ? – TomTom

+0

हाँ .. मैं बस रुक गया और पैकेजर और परियोजना शुरू कर दिया। यह ऐसा नहीं होता है जो अक्सर मुझे इसे ठीक करने की कोशिश करने के लिए पर्याप्त परेशान करता है। मुझे बुरा लगता है, लेकिन मुझे इससे पहले अन्य सामान ठीक करने की ज़रूरत है। – pvinis

संबंधित मुद्दे