के बाद इन निर्देशों (यह भी देखें एप्पल के डेवलपर दस्तावेज़ और BoltClock के लिए जवाब के बिना सेब डेवलपर कार्यक्रम या भागने डिवाइस पर टेस्ट iOS एप्लिकेशन ), मैं (या किसी iOS एप्लिकेशन संकलित करने के लिए इस मामले में सक्षम था उद्गम है, जो नहीं है एक वीडियो गेम कंसोल एमुलेटर अनुप्रयोग Apple के दिशानिर्देशों को पूरा करें और Xcode 7 में Apple के ऐप स्टोर में इसकी अनुमति नहीं दी जाएगी, इसे अपने व्यक्तिगत iCloud खाते के साथ साइन इन करें, इसे अपने iPhone पर साइडलोड करें (USB द्वारा इसे अपने मैक में प्लग करके, और मेरे iPhone को xcode मेनू में चुनकर - उत्पाद - (डेस्टिनेशन), और मेरे फोन को सेटिंग्स में इस सिग्नेचर के साथ "ट्रस्टिंग" ऐप्स द्वारा इसे निष्पादित करने की अनुमति दें -> सामान्य -> प्रोफाइल, जो डिवाइस पर मेरे आईक्लाउड अकाउंट से जुड़े प्रमाण पत्र को स्थापित करता है।
मैं इन कदमों को ओवर डाउनलोड के साथ दोहराना चाहूंगा। क्या मुझे एक निष्पादन योग्य उत्पादन करने के लिए एक्सकोड मिल सकता है जिसे मैं अपने भाई के साथ साझा कर सकता हूं, जिसके पास आईफोन है, लेकिन एक्सकोड के साथ मैक तक पहुंच नहीं है?
StackExchange Network ने अपने iOS ऐप बीटा प्रोग्राम के लिए मोबाइल डिवाइस प्रबंधन के माध्यम से Apple के उद्यम वितरण का उपयोग करते हुए, जाहिरा तौर पर कुछ ऐसा किया, जैसा कि इस प्रश्न में वर्णित है । इसमें BuildStore ( http://builds.io/ ) भी है, जो $ 10 / वर्ष के लिए भी इस कार्यक्षमता को सक्षम बनाता है, जाहिर है कि उपयोगकर्ताओं को एक पेड ऐप्पल डेवलपर प्रोग्राम खाते से जुड़ी "डेवलपर टीम" में जोड़कर ( Apple देव डॉक्स देखें ) । Xcode 7 के साथ, क्या उद्यम के बिना या नियमित रूप से भुगतान किए गए डेवलपर खाते के बिना भी ऐसा करना संभव है?
अद्यतन: स्टेक्सजा की मदद के लिए धन्यवाद, मैंने कुछ प्रगति की है, जिसे मैं यहां संक्षेप में बताऊंगा।
- XCode एक संग्रह (उत्पाद -> संग्रह) बनाएगा, लेकिन यह आपको भुगतान किए गए ADP खाता स्तरीय की सदस्यता लिए बिना तदर्थ वितरण के लिए .ipa फ़ाइल में एक संग्रह निर्यात करने की अनुमति नहीं देता है।
- कोई समस्या नहीं है, हालांकि, कमांड लाइन xcode उपकरण क्योंकि करता है यहां तक कि कोई भी सशुल्क ADP खाते के साथ, एक .ipa निष्पादन योग्य बना सकते हैं। जैसे कमांड का उपयोग करें
xcodebuild -exportArchive -archivePath Provenance-Release\ 11-20-15\,\ 22.24.xcarchive/ -exportOptionsPlist ~/manifest.plist -exportPath ~/Provenance(खावर का जवाब देखें कि Apple डेवलपर अकाउंट के बिना xcode 6 में ipa कैसे बनाएं? ) - लेकिन इस कमांड के लिए आपको एक .plist फ़ाइल निर्दिष्ट करनी होगी। ओवर द एयर (ओटीए) आईओएस आईपीए फाइल डिस्ट्रीब्यूशन फॉर पब्लिक में राजवन द्वारा जवाब ? इसमें एक नमूना मैनिफ़ेस्ट.प्लिस्ट शामिल है, साथ ही डाउनलोड लिंक प्रदान करने के लिए आवश्यक हाइपरलिंक प्रारूप के लिए निर्देश, जिसे एसएसएल वेबपेज पर होस्ट किया जाना चाहिए। हो सकता है कि एसएसएल यूआरएल को ऐप के बंडल आईडी को गणित करना होगा, मुझे यकीन नहीं है।
- लेकिन उपरोक्त केवल तभी काम करता है जब ऐप उस डिवाइस के लिए प्रावधान किया जाता है जो इसे डाउनलोड करता है, और डिवाइस ने पहले से ही डेवलपर प्रमाणपत्र स्थापित किया है। उदाहरण के लिए, एक डिवाइस जो पहले USB के माध्यम से मेरे Xcode से जुड़ा हुआ था, अब वह ऐप को हवा में डाउनलोड कर सकता है, जो बहुत अच्छा है। यह प्रगति है। लेकिन स्वच्छ उपकरणों के लिए, मुझे त्रुटि मिलती है
Could not install embedded profile: 0xe8008012 (This provisioning profile cannot be installed on this device.)(जैसा कि डिवाइस के कंसोल में देखा जाता है, जिसे Xcode -> विंडो -> डिवाइसेस में देखा जा सकता है, या एप्पल कॉन्फिगरेटर एप में)। - किसी उपकरण के लिए किसी एप्लिकेशन को प्रोविज़न करने के लिए, उसे
embedded.mobileprovisionफ़ाइल में डिवाइस का UDID सम्मिलित करना होगा , देखें कि आप iOS ऐप में प्रोविजनिंग प्रोफाइल कैसे एम्बेड करते हैं , IPA के एम्बेडेड.mobileprovision में किसी फ़ील्ड की जाँच कैसे करें? , * .Ipa फ़ाइल बनाने के लिए किस प्रोफ़ाइल का उपयोग किया गया? , और क्या UDID को एक बिल्ड में शामिल करने का तरीका है? । आप यूडीआईडी को जोड़ने के लिए सिर्फ इस फाइल को संपादित नहीं कर सकते हैं, हालांकि, तब एप्लिकेशन का CODESIGNATURE मेल नहीं खाता है, और डिवाइस त्रुटि की रिपोर्ट करेगाFailed to verify code signature of /private/var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.7jBjpk/extracted/Payload/Provenance.app : 0xe8008017 (A signed resource has been added, modified, or deleted.)} - ठीक है, इसलिए हमें ऐप को इस्तीफा देना होगा। Xcode एक कमांडलाइन टूल प्रदान करता है, जिसे
codesignयह कहा जा सकता है। निर्देश हैं कि कैसे आईपीए फ़ाइल पर फिर से हस्ताक्षर करें? और पुनः साइन आईपीए (iPhone) और एक iPhone अनुप्रयोग पुनः साइन, सम्मिलित नया बंडल आईडी और अपलोड के लिए Xcode आयोजक को भेजने और मैन्युअल रूप से नया प्रावधान प्रोफाइल के साथ एक आईपीए में पुनः प्रवेश कैसे । मुझे अपने डेवलपर प्रमाणपत्र को निर्दिष्ट करना था, जिसका सटीक नाम प्रमाणपत्र टैब के तहत किचेन एक्सेस में पाया जा सकता है, और "iPhone डेवलपर: username@mac.com (ABCDEFGHIJ)" जैसा दिखता है। फिर आज्ञा जैसी हैcodesign -f -s "iPhone Developer: username@mac.com (ABCDEFGHIJ)" Payload/Provenance.app। उदाहरण के ऊपर दिए गए निर्देशों में एक झंडा शामिल है--resource-rules, लेकिन मुझे अपने संकलित ऐप में ऐसी कोई फ़ाइल नहीं मिली, इसलिए मैंने उस ध्वज को हटा दिया। मुझे आश्चर्य है कि यह क्या करता है, और क्या यह आवश्यक है। संपादित करें: थॉमस कोल्बाच द्वारा हस्ताक्षरित उत्कृष्ट ब्लॉग पोस्ट इनसाइड कोड बताता है कि--resource-rulesध्वज का उपयोग यह बताने के लिए किया जाता है कि किसी एप्लिकेशन के किन हिस्सों पर हस्ताक्षर किए जाने चाहिए, लेकिन चूंकि iOS8 को पदावनत किया गया है, और संपूर्ण ऐप पर हस्ताक्षर किए जाने चाहिए। - अब जब ऐप में UDID जोड़ा गया है और हस्ताक्षरित है, तो इसे ताज़ा डिवाइस पर डाउनलोड करने से त्रुटियां होती हैं
Could not install embedded profile: 0xe8008003 (This provisioning profile is malformedऔरA valid provisioning profile for this executable was not found। मेरा अनुमान है कि समस्या अब यह है कि डिवाइस ने अभी भी डेवलपर प्रमाणपत्र स्थापित नहीं किया है। जब एप्लिकेशन को निष्पादित करने से पहले Xcode के माध्यम से साइडलोड किया जाता है, तो आपको सेटिंग्स -> सामान्य -> प्रोफ़ाइल में स्थापित प्रमाण पत्र ढूंढना होगा, अपना प्रमाणपत्र चुनें और "विश्वास" पर टैप करें। हालाँकि यह विकल्प तदर्थ ऐप के ओवर-द-एयर डाउनलोड के बाद प्रकट नहीं होता है, इसलिए मैं अनिश्चित हूं कि कैसे आगे बढ़ना है। मुझे लगता है कि मुझे डिवाइस पर डेवलपर प्रमाणपत्र स्थापित करने के लिए किसी तरह की आवश्यकता है। आईओएस 8.0.2 पर प्रोविजनिंग प्रोफाइल स्थापित करने के अनुसार, यह केवल डिवाइस को प्रमाण पत्र ईमेल करके संभव हुआ करता था, लेकिन अब यह iOS 8 के रूप में काम नहीं करता है। मैंने पुष्टि करने की कोशिश नहीं की है। मैं अपने डेवलपर प्रमाणपत्र को iOS डिवाइस पर दूरस्थ रूप से कैसे स्थापित कर सकता हूं? - मैंने किचेन एक्सेस से अपने iPhone डेवलपर प्रमाणपत्र का निर्यात करने की कोशिश की, और इसे डिवाइस पर ईमेल किया। डिवाइस प्रमाणपत्र को स्थापित करने में सक्षम था, लेकिन उसने लाल चेतावनी के साथ प्रदर्शित किया कि यह हस्ताक्षरित नहीं था, जबकि जब Xcode / USB के माध्यम से प्रमाणपत्र स्थापित किया गया था तो ऐसी कोई चेतावनी नहीं थी। रिदमिक फ़िस्टमैन के अनुसार एक एम्बेडेड। मोबाइलप्रोविजन फ़ाइल को फिर से एन्क्रिप्ट करना संभव है? काम करने के लिए Apple द्वारा प्रोफ़ाइल पर हस्ताक्षर किए जाने चाहिए। यह स्टिकिंग पॉइंट हो सकता है। यदि आपके पास कोई भुगतान किया हुआ ADP खाता है, तो Apple केवल आपके प्रमाणपत्र पर हस्ताक्षर करेगा।
- शॉन हेबर द्वारा प्रोविजनिंग पर यह ब्लॉग पोस्ट डेवलपर सर्टिफिकेट्स और प्रोविजनिंग प्रोफाइल के सामान्य सिद्धांत के बारे में बहुत रोशन कर रहा था (साथ में कोल्बाच के इन दोनों को पढ़ने की आवश्यकता होनी चाहिए)। इसमें यह पैराग्राफ है:
यह सब काम करने और सुरक्षित होने का कारण यह है कि ऐप्पल पोर्टल में प्रोविज़निंग प्रोफाइल तैयार करता है और फिर उन्हें आप तक पहुँचाने से पहले अपने निजी कुंजी के साथ उन्हें हस्ताक्षरित करता है। प्रोविज़निंग प्रोफाइल पर हस्ताक्षर कुछ ऐसा है जो केवल Apple ही कर सकता है। इसलिए आपके द्वारा डाउनलोड की जाने वाली फ़ाइल को अमान्य बताए बिना छेड़छाड़ नहीं की जा सकती है। एक अमान्य प्रोविज़निंग प्रोफाइल को iOS द्वारा स्वीकार नहीं किया जाएगा और इस प्रकार Apple ठीक उसी तरह नियंत्रित कर सकता है जो किसी डेवलपर द्वारा प्रोविज़निंग प्रोफाइल पर हस्ताक्षर करने तक पहुँच को प्रतिबंधित कर सकता है और नहीं कर सकता है, जो डेवलपर पोर्टल आपको पहले में कॉन्फ़िगर करने की अनुमति देता है। स्थान - भले ही प्रोविज़निंग प्रोफाइल किसी भी अन्य भयानक विकल्पों की संख्या का समर्थन कर सकती है जो आप जेलब्रेक किए बिना उपयोग नहीं कर सकते हैं। यही कारण है कि आपको पोर्टल में परीक्षण उपकरणों को पंजीकृत करना होगा, अपने प्रमाण पत्र को पोर्टल में जोड़ें, आदि - केवल पोर्टल में चीजें (और इस प्रकार जिनकी संख्या को नियंत्रित किया जा सकता है और एप्पल द्वारा मनमाने ढंग से सीमित किया जा सकता है) को एक उत्पन्न और ठीक से हस्ताक्षरित प्रोविज़निंग प्रोफाइल में शामिल किया जा सकता है। पोर्टल वह जगह है जहां एप्पल की प्रावधान नीतियों और सीमाओं को वास्तव में लागू किया गया है।
यह निश्चित रूप से मेरे प्रश्न का उत्तर देता है (क्या मुझे भुगतान एडीपी खाते के बिना चलाने के लिए ऐप मिल सकता है) "नहीं" के साथ। हालाँकि यह आलेख Xcode 7. से पहले आता है। जाहिरा तौर पर Xcode 7 एक डिवाइस के UDID को Apple पोर्टल पर भेजेगा, और जवाब में Apple द्वारा हस्ताक्षरित एक प्रोविजनल प्रोफाइल प्राप्त करेगा, जिसमें UDID होगा। Xcode 7 केवल ऐसा तब करता है जब डिवाइस USB के माध्यम से प्लग किया जाता है और Xcode द्वारा पहचाना जाता है, लेकिन एक आश्चर्य है कि क्या Apple के लिए मैन्युअल Xcode अनुरोध तैयार किया जा सकता है? यह उल्टा इंजीनियरिंग एप्पल के सामान से अधिक गहरा हो जाता है, क्योंकि मैं इसके साथ सहज हूं, और शायद टीओएस या जो कुछ भी उल्लंघन करता है, इसलिए मुझे लगता है कि मैं "नहीं" जवाब से संतुष्ट हूं।
के अनुसार BuildStore के लिए के बारे में पेज , वे ईमेल के माध्यम से कुछ समान प्रबंधन, तो यह संभव हो सकता है।
कमांड लाइन से Xcode "बिल्ड एंड आर्काइव" काफी पुराना है (लगभग 3 xcode), लेकिन सुझाव है xcrunकि xcodebuildजिसके बजाय मैं उपयोग कर रहा हूं।