2015-04-08 7 views
20

के साथ कमांड लाइन से .ipa फ़ाइल कैसे उत्पन्न करें मेरे पास एक जेनकिन्स उदाहरण है जो xcodebuild का उपयोग करके रिलीज़ बिल्ड करता है। मेरे पास xcrun का उपयोग करके .ipa फ़ाइल बनाने के लिए एक स्क्रिप्ट (जेनकींस पर) है। यह अब तक हमारे लिए ठीक काम करता है। अब हमारे पास एक वॉचकिट ऐप है और इस प्रक्रिया से बनाई गई .ipa फ़ाइल एक जैसी नहीं है जो बनाई गई है यदि आप संग्रह बनाते हैं और इसे एक्सकोड से निर्यात करते हैं।वॉचकिट ऐप

एक्सकोड से निर्यातित .ipa में 'पेलोड' फ़ोल्डर, एक 'प्रतीक' फ़ोल्डर (शायद वैकल्पिक) और 'वॉचकिट्सपोर्ट' फ़ोल्डर है। Xcrun से उत्पन्न आईपीए में 'सिंबल' या 'वॉचकिट्सपोर्ट' फ़ोल्डर नहीं है। संरचना के बारे में अधिक देखें: https://stackoverflow.com/a/19856005/327386 को संग्रहीत और .ipa निर्माण (Xcode प्रक्रिया के समान) लेकिन फिर भी है कि प्रश्न में नए फ़ोल्डर का निर्माण नहीं किया निर्यात करने के लिए आदेशों है: https://stackoverflow.com/a/29400301/327386

मैं पर इतना इस पोस्ट को देखा ।

क्या किसी को पता है कि क्या एक .ipa फ़ाइल बनाने के लिए कमांड लाइन टूल्स का उपयोग करने का कोई तरीका है जो एक्सकोड द्वारा बनाए गए एक के बराबर है? मुझे इस

+1

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

+2

क्या आप मूल बग से लिंक कर सकते हैं? –

+0

मैं आपसे सहमत हूं, मैं यहां वही परिणाम देख रहा हूं। मैंने कोशिश की है कि 'xcodebuild -exportArchive -exportFormat ipa -archivePath App.xcarchive -exportPath App -exportWithOriginalSigningIdentity' – danieljimenez

उत्तर

1

पर कोई आधिकारिक दस्तावेज नहीं मिला, मुझे भी एक ही समस्या का सामना करना पड़ा। कमांड लाइन टूल exportArchive आईपीए में संग्रह निर्यात करते समय आवश्यक वॉचकिट समर्थन फ़ोल्डरों को याद करता है। मैंने नीचे शेल स्क्रिप्ट का उपयोग करके इसे समझने की कोशिश की।

https://gist.github.com/phatblat/6eb8895e2202f796960e

आप नीचे दिए गए जैसे buildscript अपने जेनकींस से ऊपर shellscript कॉल कर सकते हैं।

<exec executable="/bin/bash" failonerror="true"> 
      <arg value="${root.dir}/buildscripts/package-ida.sh" /> 
      <arg value="${build.dir}/APP_NAME.xcarchive" /> 
      <arg value="${build.dir}/APP_NAME.ipa" /> 
     </exec> 

अब तुम भी उत्पन्न जेनकींस निर्माण का उपयोग कर सफल हो जाएगी आपकी आईपीए पेलोड और अपने appstore एप्लिकेशन सत्यापन में WatchKit समर्थन फ़ोल्डर को देखने के लिए सक्षम हो जाएगा।

6

सटीक समस्या

xcodebuild -exportArchive घड़ी एक्सटेंशन के साथ मान्य आईपीए नहीं कर सकते हैं, यह एक एप्पल बग (http://openradar.appspot.com/20898925) है।

सरकारी (Xcode 7) समाधान

एप्पल xcodebuild -exportArchive कमान की -exportOptionsPlist ध्वज के साथ Xcode 7 में इस समस्या का समाधान। आप in this article के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

नहीं-सरकारी (Xcode 6) समाधान

समस्या के लिए समाधान कर रहे हैं। यदि यह जरूरी है तो आप उनके साथ खेल सकते हैं, लेकिन मुझे कोई काम नहीं मिला जो सभी के लिए काम कर रहा था (फोरम चर्चाओं के आधार पर)।

  1. WatchKitSupport और Symbols फ़ोल्डर्स जोड़ना। अधिक जानकारी here और here। यह मेरे लिए काम नहीं कर रहा था।
  2. पूरे एप्लिकेशन को इस्तीफा दे रहा है। अधिक जानकारी here। यह हैकी है, लेकिन पहले उल्लिखित समाधान से बेहतर काम कर रहा है।
+0

दिलचस्प - मैं इस विकल्प को एक्सकोड 7 में देखूंगा – RPM

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