2011-06-01 19 views
17

में साफ और निर्माण की आवश्यकता है मेरे पास एक आईओएस प्रोजेक्ट है जो एक फ्रेमवर्क प्रोजेक्ट पर बनाया गया है जिसे हम विभिन्न आईओएस परियोजनाओं में उपयोग करते हैं। ऐप प्रोजेक्ट में एक एक्सकोड प्रोजेक्ट के रूप में ढांचा शामिल है। ऐप प्रोजेक्ट की ढांचे के स्थैतिक पुस्तकालय निर्माण लक्ष्य पर निर्भरता है। (तीन20 जैसे अधिकांश ओपन सोर्स लाइब्रेरीज़ के समान)स्थिर लाइब्रेरी के स्रोत को बदलने के लिए xcode 4

समस्या यह है कि यदि मैं फ्रेमवर्क स्रोत कोड में कुछ बदलता हूं तो स्थिर लाइब्रेरी को पुनर्निर्मित नहीं किया जाता है जब मैं & ऐप प्रोजेक्ट चलाता हूं।

& निर्माण के बाद एक साफ करने के बाद परिवर्तनों को सही ढंग से संकलित किया जाता है। जब भी मैं ढांचे में कुछ बदलता हूं, पुनर्निर्माण करना स्पष्ट कारणों के लिए एक अच्छा तय नहीं है।

क्या ऐसी कोई सेटिंग है जिसे मुझे बदलना है ताकि xcode सही ढंग से मेरे ढांचे को गंदा के रूप में पहचान सके और उसके अनुसार इसे बनाता है?

मैं xcode उपयोग कर रहा हूँ 4.0.2

+0

एक ही समस्या है, जहां आप अपनी main.m फ़ाइल सेट जोड़ें।यदि मैं पुस्तकालय के स्रोत को अद्यतन करता हूं तो एक स्वच्छ निर्माण की आवश्यकता है। क्या आपने इसे हल किया? धन्यवाद। –

उत्तर

22

यह xcode 4.0.2 में एक बग है (भविष्य के संस्करण में तय किया जा सकता है)। https://devforums.apple.com/thread/91711?start=25&tstart=0 से: परियोजना में

  1. सेट स्थिर पुस्तकालयों, करने के लिए फ़्रेमवर्क के तहत : सापेक्ष को उत्पाद बिल्ड
  2. बंद XCode
  3. project.pbxproj संपादित करें और इतना है कि स्थिर पुस्तकालय के सभी पथ घटकों को दूर केवल फ़ाइल नाम ही रहता है, इस तरह (महत्वपूर्ण हिस्सा "पथ = libLibrary.a")

    ए 74F787413566130000D0AFC/* libLibrary.a */= {isa = PBXFileReference; lastKnownFileType = archive.ar; पथ = libLibrary.a; स्रोत ट्री = BUILT_PRODUCTS_DIR; };

+0

पूरी तरह से काम किया, धन्यवाद – jimj

+0

मुझे विश्वास नहीं है कि यह समस्या अभी भी 2 साल बाद मौजूद है। – eladleb

+2

मुझे विश्वास नहीं है कि यह समस्या अभी भी मौजूद है X साल बाद – yeesterbunny

0

आप संभवतः अपने लक्ष्य और स्थिर पुस्तकालय के बीच एक निर्भरता याद कर रहे हैं।

निर्भरता को जोड़ने के लिए:

  1. खींचें/अपनी परियोजना

    1b पर स्थिर पुस्तकालय Xcode प्रोजेक्ट छोड़ देते हैं। पुस्तकालय को अपने ऐप ढांचे में जोड़ें (मैं समझता हूं कि यह पहले से ही है);

  2. अपना लक्ष्य चुनें; जानकारी फलक दिखाएं;

  3. निर्भरता पर जाएं, "+" पर क्लिक करें, फिर अपनी स्थिर lib चुनें।

ये निर्देश Xcode 3.2.x के लिए मान्य हैं, लेकिन मुझे आशा है कि इस आधार पर आप आसानी से अपने तरीके से इस से बाहर Xcode 4. साथ

संपादित पा सकते हैं: Xcode 4 के लिए, this की जाँच करें और this (एक कामकाज के लिए प्रश्न का संपादित हिस्सा)।

+0

चरण xcode 4 में थोड़ा अलग हैं। लेकिन मैंने पहले ही ऐसा किया है, अन्यथा मेरी परियोजना कभी भी त्रुटियों के बिना निर्माण नहीं करेगी। समस्या यह नहीं है कि मुझे निर्माण के दौरान त्रुटियां मिलती हैं, लेकिन सामान्य निर्माण करते समय लाइब्रेरी प्रोजेक्ट में बदलावों को पहचाना नहीं जाएगा। केवल एक साफ और निर्माण काम करेगा। – sliver

+0

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

0

एक स्क्रिप्ट कदम के रूप में संशोधित

#Force dependencies' relink 
touch MyProject/main.m 
संबंधित मुद्दे