2011-02-15 14 views
55

मैं xcodebuild (कमांड लाइन उपकरण) को कैसे निर्दिष्ट करूं कि क्या मैं सिम्युलेटर या डिवाइस के लिए बनाना चाहता हूं?xcodebuild: सिम्युलेटर या डिवाइस?

+12

वास्तव में निष्पादन योग्य पूरी तरह अलग है, जब आप सिम के लिए निर्माण कर रहे हैं तो आप x86 के लिए संकलित कर रहे हैं और एआरएम के लिए डिवाइस पर हैं। –

उत्तर

122

एक XCode निर्माण से कमांड लाइन लगता है:

xcodebuild -configuration ${BUILD_TYPE} -target ${TARGET_NAME} -arch ${CPU_ARCHITECTURE} -sdk ${SIMULATOR_OR_IOS_SDK} 

BUILD_TYPE "रिलीज़" या "डीबग" (उन चूक, आप परियोजना के लिए अन्य लोगों के नाम जोड़ दिया हो रहे हैं)

की तरह कुछ है

TARGET_NAME लक्ष्य आप का निर्माण कर रहे का नाम है (द्वारा अपनी परियोजना के रूप में एक ही नाम डिफ़ॉल्ट)

CPU_ARCHITECTURE सीपीयू आप, के लिए में से एक का निर्माण कर रहे है:

i386, ARMv6, ARMv7 सिम्युलेटर के लिए

उपयोग i386 बनाता है, और या तो ARMv6 या डिवाइस के लिए ARMv7 का उपयोग बनाता है - ध्यान दें कि कुछ अन्य उपकरणों ARMv7 कोड जब पुस्तकालयों यह निर्माण नहीं चलाया जा सकता है, तो आम तौर पर इन सभी आर्किटेक्चर बनाने के लिए एक अच्छा विचार है और फिर lipo का उपयोग करके उन्हें एक साथ चिपकाएं।

SIMULATOR_OR_IOS_SDK जो आप खोज रहे हैं, वह iphoneos या iphonesimulator है।

xcodebuild -showsdks 

कौन सा प्रकार की सूची देता है:

Mac OS X SDKs: 
    Current Mac OS     -sdk 
    Mac OS X 10.6     -sdk macosx10.6 

iOS SDKs: 
    iOS 4.2       -sdk iphoneos4.2 

iOS Simulator SDKs: 
    Simulator - iOS 3.2    -sdk iphonesimulator3.2 
    Simulator - iOS 4.0    -sdk iphonesimulator4.0 
    Simulator - iOS 4.1    -sdk iphonesimulator4.1 
    Simulator - iOS 4.2    -sdk iphonesimulator4.2 

xcodebuild की तुलना में अधिक झंडे है उन मूल्यों एसडीके स्थापित XCode का समर्थन करता है के नवीनतम संस्करण का उपयोग करें, आप के साथ समर्थित एसडीके के की एक सूची प्राप्त कर सकते हैं कि, लेकिन वे वे हैं जिन्हें आप आमतौर पर एक्सकोड का उपयोग करने के बाद बिल्ड गुणों को स्थापित करने के लिए उपयोग करते हैं। आपको उन सभी का उपयोग करने की ज़रूरत नहीं है, लेकिन शायद आप जो भी बना रहे हैं उसके बारे में स्पष्ट होना एक अच्छा विचार है - अन्यथा मेरा मानना ​​है कि आपकी आखिरी सेटिंग्स का उपयोग किया जाता है।

+0

मुझे 'कॉन्फ़िगरेशन' और '-टाइटल' पता है, मैं बस भूल गया था कि हार्डवेयर बनाम सिम्युलेटर एसडीके द्वारा सेट किया गया था। धन्यवाद! –

+4

आप नवीनतम संस्करण के लिए '-sdk iphoneos' का भी उल्लेख करना चाहेंगे। –

+0

धन्यवाद, मुझे पता था कि एक्सकोड में "नवीनतम संस्करण" एसडीके सेटिंग थी, लेकिन मुझे पता नहीं लगा कि यह क्या था। मुझे लगता है कि "iphonesimulator" नवीनतम आईफोन सिम्युलेटर संस्करण भी है। –

1

मुझे -xcconfig ध्वज काफी उपयोगी लगता है। यह विकल्प आपको xcconfig (बिल्ड सेटिंग्स फ़ाइल बनाने) के लिए पथ निर्दिष्ट करने की अनुमति देता है। एक xcconfig के भीतर, आप #include अन्य xcconfig फ़ाइलों को कर सकते हैं।

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