7

का उपयोग करते समय xcodebuild तर्कों को अनदेखा किया गया मेरा नाम लुका है और मैं वर्तमान में शैल-स्क्रिप्टिंग का उपयोग करके वितरण (विज्ञापन और एप स्टोर) के लिए एक्सकोड में ऐप्स बनाने के लिए आईओएस निरंतर एकीकरण पर काम कर रहा हूं।संग्रह

अब तक मैंने आईपीए फाइलों के साथ अच्छे परिणाम प्राप्त किए हैं। ऐप स्टोर में वितरण के लिए मेरी समस्या आती है। स्क्रिप्ट से .app निर्माण करने के लिए (कुछ तर्क गुजर) मुझे क्या करना:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc 

XCode 4.2 के साथ के बाद से, एप्लिकेशन प्रस्तुत XCode आयोजक विंडो का उपयोग मैं भी सक्षम मेरी निष्पादन संग्रह करने के लिए किया जाना चाहिए किया जाता है।

इसलिए मैं इस प्रकार पिछले कमांड लाइन को संशोधित:

xcodebuild -scheme myScheme -configuration myConfiguration PRODUCT_NAME=myProductName TARGETED_DEVICE_FAMILY=myTargetedDeviceFamily .... etc  **archive** 

दुर्भाग्य के बाद मैं ऐसा करते हैं, ऐसा लगता है कि 'संग्रह' तर्क बल xcodebuild अन्य लोगों की अनदेखी करने (PRODUCT_NAME, TARGETED_DEVICE_FAMILY, ... ।) और मेरा आउटपुट XCode पूर्वनिर्धारित बिल्ड सेटिंग्स का उपयोग करके बनाया गया है।

मैं xcodebuild के साथ तर्क पारित करने और प्रभावी होने में सक्षम होना चाहता हूं, लेकिन 'संग्रह' कार्रवाई इसे रोकने के लिए प्रतीत होती है।

मैं पागल हो जा रहा हूँ, मदद कृपया :)

धन्यवाद

उत्तर

4

xcodebuild के लिए संग्रह कार्रवाई Xcode 4.2 में एक बग है लगता है। आम तौर पर प्रोजेक्ट कॉन्फ़िगरेशन के लिए ओवरराइड या तो कमांड लाइन पैरामीटर या -xcconfig पैरामीटर के रूप में निर्दिष्ट किया जा सकता है।

हालांकि बिल्डिंग उन्हें सम्मानित करता है, संग्रह नहीं है। (संभवतः ऐसा इसलिए है क्योंकि संग्रह एक मेटा-एक्शन है जो आंतरिक रूप से निर्माण का आह्वान करता है, लेकिन आंतरिक आमंत्रण के विकल्पों को पारित नहीं करता है।) इस ओपनराडर bug है जो इस समस्या का वर्णन करता है, इसलिए संभवतः यह ऐप्पल को सूचित किया गया है।

अंत में, ध्यान दें कि यदि आप किसी स्क्रिप्ट से संग्रह संग्रह का उपयोग करने जा रहे हैं तो आप xcodebuild से बाहर निकलने वाले कोड पर भरोसा नहीं कर सकते हैं। संग्रह कार्रवाई हमेशा 0 के बाहर निकलने का कोड उत्पन्न करती है (सफलता, सम्मेलन द्वारा)। निर्माण विफलता का पता लगाने के लिए आपको आउटपुट को स्क्रैप करने की आवश्यकता है।

0

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

-1

यह मूल पोस्टर के लिए बहुत देर हो सकती है, लेकिन अन्य की मदद कर सकती है। अपने निर्माण की प्रक्रिया के लिए, मैं पहले साफ के साथ करने के लिए xcodebuild का उपयोग और उसके बाद का निर्माण, तो मैं xcrun का उपयोग संग्रह बनाने के लिए: इस आदेश के साथ

/usr/bin/xcrun -sdk iphoneos PackageApplication -v "build/<Path_to_build_dir>/<App_Name>.app" -o "<Path_to_archive_output>.ipa" --sign "<signing identity>" --embed "<path to provision profile>.mobileprovision" 

, मैं app की दुकान के लिए एक संग्रह बना सकते हैं, या यहां तक ​​कि एक अपलोड तदर्थ निर्माण इस तरह TestFlight रहे हैं:

curl http://testflightapp.com/api/builds.json \ 
    -F file="<path to archive>" \ 
    -F api_token='<api token>' \ 
    -F team_token='<team token>' \ 
    -F notes='Automated build' \ 
    -F notify=True \ 
    -F distribution_lists='me' 

इस xcode के रूप में काम करता 6.1

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