2012-04-22 13 views
10

मैं ओएस एक्स के लिए एक ढांचा बनाने के लिए एक्सकोड 4.3 का उपयोग कर रहा हूं। मैंने इस वर्कस्पेस में जाने के लिए वर्कस्पेस और एक प्रोजेक्ट (फ्रेमवर्क लक्ष्य के साथ) बनाया है।एक ही कार्यक्षेत्र में दो परियोजनाओं के बीच लक्ष्य निर्भरता

अब, मैं एक तीसरे पक्ष के ढांचे मैं भी समान कार्यस्थल (लेकिन मेरी परियोजना के भीतर नहीं) में शामिल किया है साथ & लिंक शामिल करना चाहते हैं। मैंने + बटन पर क्लिक किया "पुस्तकालयों के साथ लिंक बाइनरी" बिल्ड चरण, और तीसरे पक्ष के ढांचे को उपलब्ध पुस्तकालयों की सूची में दिखाई दिया।

जुड़ा हुआ ढांचा परियोजना नाविक में लाल दिखाई देता है, के रूप में तीसरे पक्ष के पुस्तकालय अभी तक निर्माण नहीं किया गया है (भी संदेहास्पद है, हालांकि, मेरी परियोजना को सफलतापूर्वक बनाता है - हालांकि मैं अभी तक उपयोग तीसरे करने की कोशिश कर नहीं कर रहा हूँ पार्टी ढांचा):

मैं एक लक्ष्य निर्भरता के रूप में यह जोड़कर इस को हल करने के लिए जा रहा था, लेकिन जब मैं क्लिक + पर "लक्ष्य निर्भरता" चरण का निर्माण, तीसरे दल के लक्ष्य नहीं करता है ' सूची में दिखाया नहीं है।

मुझे इस निर्भरता को सही तरीके से कॉन्फ़िगर/हल कैसे करना चाहिए? साथ ही, क्या मुझे अपने लक्ष्य की फ्रेमवर्क निर्देशिका में ढांचे की प्रतिलिपि बनाने के लिए एक कॉपी फ़ाइलें निर्माण चरण बनाने की आवश्यकता है? मैं इसे ठीक से कैसे स्थापित करूं?

+0

मुझे लगता है कि एक्सकोड स्वचालित रूप से इसे निर्भरता के रूप में बनाएगा क्योंकि आप इससे जुड़ रहे हैं। यह इस वजह से दिखाई नहीं दे सकता है। ढांचा शायद लाल है क्योंकि यह केवल रिलीज कॉन्फ़िगरेशन के लिए फ़ाइल का पता लगाएगा। – ughoavgfhw

+0

@ughoavgfhw हाँ, मुझे लगता है कि मैंने पढ़ा है कि यह स्वचालित रूप से कार्यक्षेत्र के भीतर निर्भरताओं का पता लगा सकता है और निर्माण कर सकता है। लेकिन आप क्यों कहते हैं कि यह केवल रिलीज कॉन्फ़िगरेशन में फ़ाइल का पता लगाएगा? (मैंने अभी उत्पाद> बिल्ड फॉर आर्काइव की कोशिश की है, और यह अभी भी लाल है।) और क्या आपको लगता है कि मुझे एक कॉपी फाइल चरण स्पष्ट रूप से स्थापित करने की आवश्यकता है? – jtbandes

+0

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

उत्तर

10

मैं कुछ समान लेकिन स्थिर स्थिरता के साथ भाग गया।

  • क्या आप ढांचे का निर्माण करने के लिए, अपने अनुप्रयोग का निर्माण (भले ही वह विफल रहता है, ढांचे का निर्माण करना चाहिए)
  • अपने अनुप्रयोग लक्ष्य के लिंक के निर्माण के चरण में ढांचे के संदर्भ निकालें
  • का पता किया करो फाइंडर में निर्मित फ्रेमवर्क (आपके ऐप वर्कस्पेस द्वारा निर्मित)।
  • इसे ऐप प्रोजेक्ट में खींचें/छोड़ दें जो इसका उपयोग करता है। ध्यान दें कि इस बार यह काला रंग (लाल नहीं)
  • पर क्लिक करता है, और यह सुनिश्चित करें कि एक्सकोड इंस्पेक्टर "निर्मित उत्पादों के सापेक्ष" दिखाता है (आपको इसे संदर्भ प्रकार बदलने की आवश्यकता हो सकती है), और यह पथ केवल myframework.framework।
  • जांचें कि इसे ऐप लिंक चरण में जोड़ा गया है (इसे चाहिए)
  • वह है जिसे आप प्रतिलिपि/निर्माण चरण में उपयोग कर सकते हैं।
+0

भविष्य के पाठकों के लिए: यह समाधान [इस डेवलपर मंच थ्रेड] से आया था (https://devforums.apple.com/thread/148935) जहां आप और चर्चा कर सकते हैं। – jtbandes

+4

फ्रेमवर्क/लाइब्रेरी खोज पथ में '$ (BUILT_PRODUCTS_DIR)' जोड़ना सहायक हो सकता है। – superlukas