2011-10-31 12 views
5

कहें कि मेरे पास Xcode 4 वर्कस्पेस में 2 प्रोजेक्ट हैं। प्रोजेक्ट ए अंतिम उत्पाद है जिसके लिए प्रोजेक्ट बी से निर्मित यूटिलिटी ऐप की आवश्यकता होती है। लक्ष्य यह है कि यदि आवश्यक हो तो स्वचालित रूप से प्रोजेक्ट बी बनाने की प्रक्रिया की प्रक्रिया हो, तो उत्पाद ए के ऐप बंडल के संसाधन फ़ोल्डर में बिल्ट ऐप की प्रतिलिपि बनाएँ।एक्सकोड: एक ही कार्यक्षेत्र में एक प्रोजेक्ट से दूसरे उत्पाद में निर्मित उत्पाद को कैसे जोड़ा जाए?

एक्सकोड 4 के दस्तावेज़ में वास्तव में इस संबंध में कमी है। मैंने के साथ प्रोजेक्ट ए में निर्मित बीएपी जोड़ने की कोशिश की "प्रोजेक्ट ए" में फ़ाइलें जोड़ें ... कमांड। यह ऐप बंडल की प्रतिलिपि बनाता है लेकिन यह निर्भरता की जांच नहीं करता है। यही है, जब यह अद्यतन किया जाता है तो यह स्वचालित रूप से प्रोजेक्ट बी का निर्माण नहीं करता है।

सही दस्तावेज खोजने के लिए कोई सूचक भी बहुत सराहना करता है।

संपादित: मैं हैं कि पहले 2 लाभ इस doc में उल्लेख किया है, पूरा करने के लिए देख रहा हूँ: जबकि निर्माण

  • एक परियोजना एक अन्य परियोजना के उत्पादों का उपयोग कर सकते हैं। एक परियोजना में एक ही कार्यक्षेत्र में किसी अन्य के उत्पादों पर निर्भर करता है

  • हैं, Xcode इस का पता लगाने और स्वचालित रूप से सही क्रम में परियोजनाओं निर्माण कर सकते हैं।

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

उत्तर

4

प्रोजेक्ट बी को प्रोजेक्ट ए के "लक्ष्य चरणों" टैब में लक्ष्य स्क्रीन में "लक्ष्य निर्भरता" के रूप में जोड़ें। (स्क्रीन है कि आप जब आप शीर्ष स्तर परियोजना नोड पर क्लिक करें)

अद्यतन:
ऐसा लगता है कि एक परियोजना केवल निर्भरता के रूप में एक अन्य परियोजना के उत्पादन में परिभाषित कर सकते हैं, तो दूसरी परियोजना का एक subproject है पहली: Output of B does not show up in the dependency editor of A in this constellation

+0

धन्यवाद। लेकिन यह सादे पुराने परियोजना के रास्ते की तरह है, है ना? मैंने सोचा कि इस नए वर्कस्पेस चीज़ का एक बेहतर तरीका है। एकमात्र दस्तावेज़ में मुझे लगता है (http://developer.apple.com/library/ios/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/NewProject/NewProject.html) यह उल्लेख करता है: "एक प्रोजेक्ट किसी अन्य प्रोजेक्ट के उत्पादों का उपयोग कर सकता है जबकि इमारत।" और "यदि एक परियोजना एक ही कार्यक्षेत्र में किसी अन्य के उत्पादों पर निर्भर करती है, तो एक्सकोड इसका पता लगा सकता है और स्वचालित अनुक्रमों में स्वचालित रूप से परियोजनाओं का निर्माण कर सकता है।" बाद में स्पष्ट रूप से मेरे मामले में वास्तव में काम नहीं करता है। –

+0

ऐसा लगता है कि बी को ए के उपप्रोजेक्ट होना चाहिए ताकि यह आउटपुट ए के निर्भरता संपादक में दिखाई दे। मैंने स्क्रीन के साथ अपना मूल जवाब अपडेट किया। –

+0

अद्यतन के लिए धन्यवाद। मैं नए "जादुई" कार्यक्षेत्र के रास्ते की तलाश में हूं। लेकिन ऐसा लगता है कि ऐप्पल सिर्फ इस पर गर्म हवा उड़ रहा है। यह बिल्कुल वही पुराना प्रोजेक्ट तरीका है। मैं नए कार्यक्षेत्र का उपयोग करने के लाभ को देखने में असफल रहा। एक्सकोड भी इस पुराने तरीके से गड़बड़ कर देता है। यह प्रतिलिपि संसाधन चरण में उत्पाद बी को स्वचालित रूप से नहीं जोड़ता है। मुझे मैन्युअल रूप से बी बनाना है और ए को बीएपी जोड़ना है, फिर भी यह अभी भी इसे गड़बड़ कर देता है। मैंने कॉपी बी को कॉपी करने के लिए निर्दिष्ट किया। लेकिन जब डिबग के लिए ए बिल्डिंग करते हैं, तो यह डीबग बी बनाता है और बीएपी को प्रतिलिपि बनाने के लिए नहीं मिल सकता है क्योंकि यह एक अलग बिल्ड निर्देशिका में है। ओह मेरी ... –

0

Xcode:

I can define the output of Project B as dependency of A in this constellation

यदि आपका कार्यस्थान है निम्नलिखित संरचना, निर्भरता को परिभाषित नहीं संभव है 8 संस्करण 8.2.1 (8C1002)

चरण 1 - कार्यक्षेत्र बनाएं। निर्माण उत्पाद अन्य के लिए एम्बेडेड बाइनरी के रूप में, एक के जोड़े, - enter image description here

चरण 2 - भाई बहन enter image description here

चरण 3 के रूप में कार्यक्षेत्र में खींचें परियोजनाओं। enter image description here

चरण 4 - कोड बनाएं, जहां आवश्यक हो वहां सार्वजनिक बताएं। enter image description here

चरण 5 - कोड का उपयोग करें enter image description here

+0

ओपी निर्मित उत्पादों को जोड़ना चाहता था, न कि स्रोत फाइलें, जो प्रोजेक्ट बी डीआईआर में होगा। –

+0

@ScottMarks यह उत्तर लाखों साल पुराना है। एक मिनट में जवाब अपडेट करेंगे। –

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