2009-10-29 17 views
26

मैं अपने ग्राहकों में से एक के लिए मैक ओएस एक्स पर एक स्थिर lib बना रहा हूं, साथ ही स्थैतिक lib का परीक्षण करने के लिए एक छोटा cmd लाइन ऐप भी बना रहा हूं। सीएमडी लाइन प्रोजेक्ट में 2 अतिरिक्त लाइब्रेरी सर्च पथ हैं, जिसका मतलब है कि मैं रिलीज मोड में डीबग संस्करण से जुड़ा हुआ था और बस पागल हो गया था, इसलिए मैंने इन दो पथों से छुटकारा पाने की कोशिश की, लेकिन मुझे नहीं पता कि उन्हें कहां निर्दिष्ट किया गया था । मैं परियोजना की जानकारी देख रहा था, लेकिन यह पता चला कि वे लक्ष्य जानकारी में निर्दिष्ट थे।एक्सकोड: प्रोजेक्ट सेटिंग्स बनाम लक्ष्य सेटिंग्स

मुझे भेद समझ में नहीं आता है ?! सेटिंग्स के 2 सेट क्यों हैं, जो अनिवार्य रूप से वही हैं ?! क्या कोई मुझे प्रबुद्ध कर सकता है?

उत्तर

39

एक परियोजना में कई लक्ष्य हो सकते हैं। उदाहरण के लिए, मेरे द्वारा लिखे गए एक ऐप में चार हैं - ऐप स्वयं, एक त्वरित लुक प्लगइन, एक ढांचा और एक बंडल जिसमें मैक ओएस 10.6-विशिष्ट कार्यक्षमता शामिल है जिसे गतिशील रूप से लोड किया जा सकता है।

परियोजना सेटिंग्स प्रत्येक लक्ष्य पर लागू होती हैं परियोजना में। प्रत्येक लक्ष्य को अलग-अलग सेटिंग्स को ओवरराइड कर सकते हैं यदि उन्हें आवश्यकता हो - उदाहरण के लिए, मेरे प्रोजेक्ट का लक्ष्य एसडीके 10.5 पर सेट हो गया है, लेकिन 10.6-विशिष्ट बंडल में इसका लक्ष्य एसडीके 10.6 पर सेट है।

कुछ मामलों में, कुछ सेटिंग्स परियोजना सेटिंग्स में होने की समझ में नहीं आती हैं - इनमें से एक, मुझे लगता है, खोज पथ है।

+0

अनुवांशिक प्रश्न: मुझे cmd लाइन ऐप प्रोजेक्ट में स्थिर लाइब्रेरी को कैसे शामिल किया जाना चाहिए? स्रोत फ़ाइलों की सूची में ड्रैग-एन-ड्रॉप करके? या निर्माण सेटिंग्स से? – vectorizor

+4

@iKenndac, क्या आप समझा सकते हैं कि "कुछ सेटिंग्स परियोजना सेटिंग्स में क्यों नहीं लगती हैं"? मेरे पास प्रत्येक प्रोजेक्ट में केवल एक लक्ष्य है और मैं अभी भी खोज पथ सेट करने के बारे में उलझन में हूं। – topace

8

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

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

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