2009-10-23 9 views
11

में एक उपप्रोजेक्ट कॉन्फ़िगरेशन निर्दिष्ट करना मेरे पास एक अन्य प्रोजेक्ट (B) का संदर्भ देने वाला एक्सकोड प्रोजेक्ट (A) है। डिफ़ॉल्ट रूप से (जहां तक ​​मैं इसे समझता हूं) एक्सकोड B निर्भरता के लिए कॉन्फ़िगरेशन का निर्माण करेगा जो A के लक्ष्य (उदा।, "डीबग") की कॉन्फ़िगरेशन से मेल खाता है। लेकिन अगर मैं चाहता हूं कि, "रिलीज" के रूप में बनाने के लिए "डीबग" और B के रूप में बनाने के लिए A कहें? मैं एक्सकोड में निर्दिष्ट करने के बारे में कैसे जाउंगा?एक्सकोड

उत्तर

4

मुझे किसी भी आसान दृष्टिकोण के बारे में पता नहीं है, लेकिन आप सीधे "रन स्क्रिप्ट" निर्माण चरण के साथ निर्भरता के लिए xcodebuild को कॉल करके इसे बलपूर्वक बल दे सकते हैं।

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

+0

हाँ, एक मूल्यवान टिप - धन्यवाद! – fbrereto

3

हां, यह स्वाभाविक रूप से एक्सकोड द्वारा समर्थित नहीं है; जब आप एक लक्ष्य बनाते हैं, तो यह स्वयं और सभी आश्रित लक्ष्यों की एक कॉन्फ़िगरेशन बनाता है।

रॉब का उल्लेख किया गया वर्कअराउंड, एक आश्रित लक्ष्य है जो एक समग्र लक्ष्य प्रकार है जिसमें एकल रन स्क्रिप्ट बिल्ड चरण शामिल है, जो बस xcodebuild -configuration रिलीज (या जो कुछ भी) को आमंत्रित करता है।

2

यह मदद कर सकता है: यदि प्रोजेक्ट A प्रोजेक्ट की कॉन्फ़िगरेशन नहीं मिली है, तो एक्सकोड Release कॉन्फ़िगरेशन को फ़ॉलबैक (या शायद सूची की पहली कॉन्फ़िगरेशन) के रूप में बनाएगा।

तो फिर तुम इस टिप का उपयोग कर लिंक "मजबूर" कर सकते हैं: Xcode custom build configuration causes "library/file not found" for static libraries