Xcode 4 - आउटपुट डायरेक्टरी का निर्माण करें


217

मुझे अपने आउटपुट फ़ाइलों को Xcode4 (बीटा 5) में स्थापित करने / पता लगाने में समस्या है। उन्हें कहीं रखा गया है ~/Library/Developer/ugly_path/...। मैं अपने उत्पादों पर "खोजक में शो" का चयन भी नहीं कर सकता। यह एक सरल सी परियोजना, फाउंडेशन टूल और यहां तक ​​कि कोको बंडल के लिए भी ऐसा ही है। एक डीबगिंग ठीक काम करता है।

क्या आप कृपया मुझे यह बता सकते हैं कि आउटपुट डायरेक्टरीज़ को कहाँ और कैसे स्थापित किया जाए? (मुझे पता है कि यह गूंगा लगता है, मैं महीनों के लिए Xcode3 में कोडिंग कर रहा हूं, लेकिन मैं इसे Xcode4 बीटा में नहीं समझ सकता हूं)।

बहुत बहुत धन्यवाद।

जवाबों:


342

शीर्ष पर Xcode मेनू से, प्राथमिकताएं क्लिक करें, स्थान टैब चुनें, बिल्ड स्थान विकल्प देखें।

आपके पास 2 विकल्प हैं:

  1. व्युत्पन्न डेटा स्थान में उत्पादों का निर्माण करें (अनुशंसित)
  2. लक्ष्य द्वारा निर्दिष्ट स्थानों में उत्पादों का निर्माण करें

अपडेट: xcode 4.6.2 पर आपको व्युत्पन्न डेटा टेक्स्ट फ़ील्ड के नीचे दाईं ओर उन्नत बटन पर क्लिक करने की आवश्यकता है। स्थान का चयन करें विरासत का निर्माण करें।


27
यह उत्तर बताता है कि यह परिवर्तन क्यों किया गया था: stackoverflow.com/questions/5331270/…
toofah

3
गर्व सदस्य, आपका क्या मतलब है कि ये Xcode 5 में नहीं हैं? वे वरीयताएँ -> स्थान -> व्युत्पन्न डेटा -> उन्नत में हैं।
रिचर्ड वेनेबल

ठीक है, इसलिए मेरा निर्माण .../XCode/DerivedData/फ़ोल्डर में जाता है , काफी सरल। सिवाय इसके कि सबफ़ोल्डर लगता है AppName-asdflkjqwergoobledygook। चूंकि मैं एक स्क्रिप्ट से निर्माण कर रहा हूं, मैं वास्तव में बिल्ड ढूंढना चाहता हूं (इसलिए मैं इसे पैकेज कर सकता हूं और TestFlight के माध्यम से भेज सकता हूं :) मैं कैसे निर्धारित करूं कि कई में से कौन सा MyAppName-xxxxसही है? धन्यवाद!
ओली

@ ओली आप अपने स्वयं के चुनने के लिए व्युत्पन्न डेटा स्थान को भी बदल सकते हैं
गेरार्ड

@Gardard: मैं कर सकता था, लेकिन वह नहीं है जो मैं करना चाहता हूं। मैं एक रेपो से स्रोतों की जाँच कर रहा हूं, फिर कमांड लाइन के माध्यम से निर्माण कर रहा हूं, और मैं जानना चाहता हूं कि बिल्ड कहां गया था। यह मेरी बिल्ड-स्क्रिप्ट के लिए किसी भी तरह से प्रोजेक्ट को संशोधित करने के लिए अनुचित होगा (जैसे कि प्रोजेक्ट सेटिंग्स को बदलकर।)
ओली

140

यदि आप कमांड लाइन से निर्माण करते हैं, तो आप निम्न तरीके से आउटपुट डायरेक्टरी सेट कर सकते हैं:

xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \
           -scheme 'SCHEME_NAME' \
           -configuration 'Release' \
           -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY'

काम करने के लिए अपनी श स्क्रिप्ट बनाने के लिए मुझे सिंगल कोट्स को हटाने और CONFIGURATION_BUILD_DIR = / Users / ... लिखने की आवश्यकता है
स्टैनिस्लाव पानकविच

@ कुलुस्स, आप बिलकुल सही कह रहे हैं क्योंकि यह परियोजना के निर्माण के बाद परीक्षण लक्ष्य बनाने में विफल होगा, मुझे लगता है कि यदि आप इसे बना रहे हैं तो यह ठीक है, लेकिन बेहतर उपयोग करें!
मुस्तफा बर्ग

यदि कोई और भी इसी तरह की समस्या को हल करने की कोशिश कर रहा है तो मैंने XCode 6.x को लिंक किए गए बाइनरी को ठीक से रखने के लिए राजी कर लिया, जहां इस संयोजन का उपयोग करने की आवश्यकता थी:/Users/moi/src/mozbuilds/xul3604/$(CONFIGURATION)/dist/bin
जे इवांस

29

Xcode 5 में: Xcode मेनू> वरीयताएँ ... आइटम> स्थान टैब> स्थान उप-टैब> उन्नत ... बटन> कस्टम विकल्प।

फिर चुनें, जैसे, कार्यक्षेत्र के सापेक्ष


8
हो सकता है कि आप सौ साल पुराने, मजबूत और स्वस्थ साहब हों। धन्यवाद !
व्हाट्सक्रैग

13

यदि आपके पास Xcode 4 बिल्ड लोकेशन सेटिंग है, तो "व्युत्पन्न डेटा लोकेशन में उत्पादों का निर्माण करें (अनुशंसित) रखें, यह ~ / लाइब्रेरी / डेवलपर / Xcode / DerivedData में स्थित होना चाहिए। इस निर्देशिका में एक निर्देशिका के रूप में आपका प्रोजेक्ट होगा। परियोजना का नाम उत्पन्न अक्षरों के एक समूह के साथ जोड़ा जाएगा इसलिए ध्यान से देखें।


10

व्युत्पन्न डेटा रखें लेकिन गंतव्य निर्दिष्ट करने के लिए DSTROOT का उपयोग करें।

बल लागू करने के लिए DEPLOYMENT_LOCATION का उपयोग करें।

DSYM को भी कॉपी करने के लिए undocumented DWARF_DSYM_FOLDER_PATH का उपयोग करें।

यह आपको xcodebuild से व्युत्पन्न डेटा स्थान का उपयोग करने की अनुमति देता है और ऐप को खोजने के लिए निराला सामान नहीं करना पड़ता है।

xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build

8

आप बिल्ड लॉग व्यूअर में देख कर और टर्मिनल विंडो में पथ को कॉपी करके हमेशा बिल्ड डायरेक्टरी पा सकते हैं।

मैं अपने iOS .app बंडलों का विश्लेषण करने के लिए इसका उपयोग करता हूं, इससे पहले कि वे सुनिश्चित करें कि कोई आवारा फाइलें शामिल नहीं की जा रही हैं।


इतना विश्वास है Apple। नहीं!
ज़ाफ़

1
और मुझे यह बिल्ड लॉग कहां मिलता है ?? Xcode में "बिल्ड लॉग" की खोज करने से 0 परिणाम प्राप्त करने में मदद मिलती है।
devios1

1
एनएम, को "लॉग नेविगेटर" मिला, जो एक भाषण बुलबुले की तरह दिखता है।
देवियो 1

4

जो कोई स्क्रिप्ट से बिल्ड डायरेक्टरी ढूंढना चाहता है, लेकिन उसे बदलना नहीं चाहता है, वह सभी बिल्ड सेटिंग्स की एक सूची प्राप्त करने के लिए निम्नलिखित को चलाएं जो कि DerivedData में एक फ़ोल्डर को इंगित करता है:

xcodebuild -showBuildSettings | grep DerivedData

यदि आप कस्टम लक्ष्य और योजनाएँ चलाते हैं, तो कृपया उन्हें भी वहाँ रखें:

xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData

आप चाहते हैं और फिर सेटिंग उत्पादन का पता लगाने के लिए आउटपुट को देखें:

xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//'

अंतिम भाग स्ट्रिंग को बराबर चिह्न पर काटता है और फिर शुरुआत में व्हाट्सएप को चलाता है।


2

यदि आप नए Xcode4 कार्यस्थानों का उपयोग करते हैं, तो आप फ़ाइल के अंतर्गत व्युत्पन्न डेटा स्थान को बदल सकते हैं -> कार्यक्षेत्र सेटिंग्स ...


1

आप CONFIGURATION_BUILD_DIRपर्यावरण चर का उपयोग करके आउटपुट निर्देशिका को कॉन्फ़िगर कर सकते हैं ।

स्रोत: http://developer.apple.com/library/mac/#documentation/DeveloperTools/Reference/XcodeBuildSettingRef/0-Introduction/introduction.html#//apple -ref / doc / uid / TP40003931-CH1-SW1


नहीं है कि व्युत्पन्न स्थान / विरासत (प्रति लक्ष्य) स्थान व्यवहार के लिए असंबंधित है
ग्रेगरी Pakosz

हाँ यही है। यह दोनों तरह से काम करता है। प्रलेखन से: "निर्देशिका पथ। उस निर्देशिका को पहचानता है जिसके तहत सक्रिय बिल्ड कॉन्फ़िगरेशन के लिए सभी बिल्ड-संबंधित फ़ाइलों को रखा गया है।"
हीथ बॉर्डर्स

नहीं। xcode4 के साथ नहीं, यह Xcode > Preferences > Locations > Derived dataसेटिंग पर निर्भर करता है, जैसा कि सबसे अधिक मतदान वाले उत्तर में बताया गया है। + जिस दस्तावेज़ का आप उल्लेख कर रहे हैं, वह अंतिम बार 2010 में अपडेट किया गया था
ग्रेगरी पोज़ोज़

मैंने वास्तव में xcode4 से xcode4 के साथ बिल्ड डायरेक्टरी को कॉन्फ़िगर करने के लिए इस सेटिंग का उपयोग किया है। कोशिश करो।
हीथ बॉर्डर्स

1
अच्छी तरह से मैंने Xcode 4.3.1 (IDE से) के साथ प्रयास किया है और वैश्विक सेटिंग को बदलने के बिना, उत्पादों को ~/Library/Developer/Xcode/DerivedData/उस निर्देशिका के अंदर कहीं और नहीं बनाया जाता है, जिसके साथ मैं निर्दिष्ट करता हूं CONFIGURATION_BUILD_DIR। अगर मुझे CONFIGURATION_BUILD_DIRसम्मानित किया जाना है, तो मुझे "विरासत" के लिए
एक्सकोड

0

Xcode प्राथमिकताओं के साथ खेलना शुरू करने से पहले एक और बात की जाँच करें:

अपना लक्ष्य चुनें और सेटिंग> पैकेजिंग> आवरण एक्सटेंशन पर जाएं

वहाँ मूल्य होना चाहिए: अनुप्रयोग

यदि इसे डबल क्लिक न करें और qoutes के बिना "ऐप" टाइप करें।


-1

यह कितना कष्टप्रद था। अपना प्रोजेक्ट खोलें, लक्ष्य पर क्लिक करें, चरण बनाएँ टैब खोलें। किसी भी लाल वस्तुओं के लिए अपने कॉपी बंडल संसाधनों की जाँच करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.