दिलचस्प पोस्ट
HTML5shiv बनाम डीन एडवर्ड्स आईई 7-जेएस बनाम मॉडर्नजीर – जो चुनने के लिए? पीएसडी की तरह पृष्ठांकित दस्तावेज बनाने के लिए सीएसएस 2 के बजाय एक्सएसएल-एफओ, CSS3 का उपयोग करें? लिखने के संदर्भ में विधि वापसी मान का उपयोग नहीं कर सकते पीएचपी स्क्रिप्ट के साथ एक छवि को सीधे लोड करते हुए छवि परोसें चार्ट पर जेफ्रीचर्ट को चाप खींचें गीट पुश त्रुटि: ऑब्जेक्ट को रिपॉज़िटरी डेटाबेस में जोड़ने के लिए अपर्याप्त अनुमति जावा में एक अर्रे का अधिकतम आकार एक फाइल डाउनलोड करना जो कि प्रेतजजेस में पोस्ट अनुरोध अनुरोध में अनुलग्नक के रूप में आता है किसी अन्य प्रोजेक्ट के स्प्रिंग- config.xml में स्प्रिंग- config.xml एक प्रोजेक्ट को कैसे आयात करें? प्रतिक्रिया में राज्य और सहारा के बीच क्या अंतर है? SQL सर्वर सर्वर में नियमित अभिव्यक्तियाँ? जावास्क्रिप्ट फ़ाइल इनपुट तत्व से कई विशेषताओं वाले फाइलों और उनके फाइलनामों की संख्या मिलती है? प्रस्तुत करने के लिए फार्म ताज़ा पृष्ठ रोकें मैं int के रूप में एक enum मान को कैसे सीरियल कर सकता हूं? एक दिनांक फ़ील्ड पर वर्ष, दिन या महीना से ActiveRecord खोजें

पुनः साइन इन आईपीए (आईफोन)

मैं वर्तमान में हडसन के साथ अपने सभी अनुप्रयोगों का निर्माण कर रहा हूं xcodebuild का उपयोग करके किसी भी समस्या के बिना एक्सक्रिन के बाद

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

मेरी समस्या यह है कि जब मैं ऐप को इस्तीफा देने की कोशिश करता हूं, तो यह मेरे डिवाइस पर इंस्टॉल नहीं होगा (और यह तब चाहिए जब से यह एंटरप्राइज़ बिल्ड है)। त्रुटि संदेश डिवाइस पर है (iTunes में नहीं) और यह मुझे बस बताता है कि यह ऐप इंस्टॉल नहीं कर सका। कोई और जानकारी नहीं दी गई है

मुझे कुछ जानकारी मिली है, ( http://www.ketzler.de/2011/01/resign-an-iphone-app-insert-new-bundle-id-and-send-to-xcode-organizer-for- अपलोड करें / )

और यह संभव हो सकता है मैं जो समस्या का सामना कर रहा हूं वह यह है कि यह मोबाइल प्रावधान प्रोफ़ाइल को एम्बेड करने में प्रतीत नहीं होता जैसा कि मैं अपने सामान्य निर्माण के साथ करता हूं (xcrun का उपयोग करना) को कोड्सइन उपकरण से नियंत्रित करना संभव है, या क्या एक्सक्रॉन के साथ फिर से साइन-इन करना संभव है ?

मेरे इस्तीफा स्क्रिप्ट के साथ मैं वर्तमान में कर रहा हूँ

  • ऐप खोलें। एपीए
  • ऐपनाम = $ (एलएस पेलोड)
  • xcrun -sdk iphoneos पैकेज एिप्लकेशन- "$ प्रोविजनिंग_प्रोफाइल" "$ project_dir / payload / $ appname" -अ "$ project_dir / app-resigned.ipa" –sign "$ provisioning_profile" –एम्बेड "$ mobileprovision"

मैंने परिणामस्वरूप आईपीए फ़ाइल में देखा है और यह मूल ऐप के समान ही है। क्या फाइल वास्तव में यहां बदलनी चाहिए? मैंने शुरू में सोचा था कि _CodeSignature / CodeResources बदल जाएगा, लेकिन सामग्री बहुत ज्यादा ठीक उसी तरह दिखती है।

सूचक बहुत सराहना कर रहे हैं

वेब के समाधान से एकत्रित समाधान "पुनः साइन इन आईपीए (आईफोन)"

अंत में यह काम मिला!

प्राइवेटिंग प्रोफ़ाइल में जोड़े गए उपकरणों के साथ ऐप स्टोर प्रस्तुत करने के लिए प्रमाण 1 के साथ हस्ताक्षरित आईपीए के साथ परीक्षण किया गया। एंटरप्राइज़ खाते के साथ हस्ताक्षर किए गए एक नए आईपीए में परिणाम और होम परिनियोजन के लिए एक मोबाइल प्रावधान प्रोफाइल (मोबाइल प्रावधान प्रोफ़ाइल आईपीए में एम्बेड हो जाती है)।

उपाय:

आईपीए अनझिप करें

unzip Application.ipa 

पुराने कोड निकालना निकालें

 rm -r "Payload/Application.app/_CodeSignature" "Payload/Application.app/CodeResources" 2> /dev/null | true 

एम्बेडेड मोबाइल प्रोविजनिंग प्रोफ़ाइल को बदलें

 cp "MyEnterprise.mobileprovision" "Payload/Application.app/embedded.mobileprovision" 

पुन: संकेत

 /usr/bin/codesign -f -s "iPhone Distribution: Certificate Name" --resource-rules "Payload/Application.app/ResourceRules.plist" "Payload/Application.app" 

पुन: पैकेज

 zip -qr "Application.resigned.ipa" Payload 

संपादित करें: एंटाइटेलमेंट भाग को हटा दिया गया (एलीज़ टिप्पणी देखें, धन्यवाद)

इस सवाल का जवाब इस समय की थोड़ी सी पुरानी है और संभवतः महत्वपूर्ण कदमों को अनुपलब्ध है, इसलिए यह एक बाहरी डेवलपर से ऐप इंस्टॉल करने के लिए एक अद्यतन मार्गदर्शिका है।

—– आईओएस ऐप को कैसे इस्तीफा दें —–

मान लें कि आपको किसी अन्य डेवलपर से ऐप (जैसे MyApp.ipa) प्राप्त होता है, और आप इसे अपने डिवाइस पर स्थापित और चलाने के लिए सक्षम होना चाहते हैं (उदाहरण के लिए ideviceinstaller का उपयोग करके)।

नई साइनिंग एसेट्स तैयार करें

पहला कदम एक प्रावीज़िंग प्रोफ़ाइल प्राप्त करना है जिसमें सभी उपकरणों को शामिल करना है जिन्हें आप इंस्टॉल करना चाहते हैं और चलाना चाहते हैं। यह सुनिश्चित करें कि प्रोफाइल में एक प्रमाणपत्र है जिसे आपने अपने चाबी का उपयोग (जैसे iPhone डेवलपर: कुछ बॉडी (XXXXXXXXXX)) में स्थापित किया है। प्रोफ़ाइल डाउनलोड करें (MyProfile.mobileprovision) ताकि आप ऐप में एम्बेडेड प्रोफ़ाइल को बदल सकें।

इसके बाद, हम हस्ताक्षर में शामिल करने के लिए एक एंटाइटेलमेंट फ़ाइल तैयार करने जा रहे हैं। अपना टर्मिनल खोलें और निम्नलिखित को चलाएं।

 $ security cms -D -i path/to/MyProfile.mobileprovision > provision.plist 

यह आपके प्रावधान प्रोफ़ाइल का वर्णन करने वाला एक XML फ़ाइल बनाएगा I इसके बाद, हम एक फ़ाइल में एंटाइटेलमेंट को निकालना चाहते हैं।

 $ /usr/libexec/PlistBuddy -x -c 'Print :Entitlements' provision.plist > entitlements.plist 

प्रावधान प्रोफ़ाइल और इस्तीफा दें ऐप बदलें

यदि आप .ipa फ़ाइल के साथ काम कर रहे हैं, पहले, ऐप खोलें (यदि आपके पास .app की बजाय, आप इस चरण को छोड़ सकते हैं)।

 $ unzip MyApp.ipa 

आपकी कार्यशील निर्देशिका में अब Payload/MyApp.app/ और Payload/MyApp.app/ शामिल होंगे अगला, पुराने कोड हस्ताक्षर फ़ाइलों को हटा दें।

 $ rm -rf Payload/MyApp.app/_CodeSignature 

अपने खुद के साथ मौजूदा प्रावधान प्रोफ़ाइल (यानी एम्बेडेड। मोबाइल प्रोजेक्शन) बदलें।

 $ cp path/to/MyProfile.mobileprovision Payload/MyApp.app/embedded.mobileprovision 

अब अपने प्रावधान प्रोफाइल और एंटाइटेलमेंट में शामिल प्रमाण पत्र के साथ ऐप पर हस्ताक्षर करें।

 $ /usr/bin/codesign -f -s "iPhone Developer: Some Body (XXXXXXXXXX)" --entitlements entitlements.plist Payload/MyApp.app 

महत्वपूर्ण: आपको एप में शामिल सभी ढांचे को भी इस्तीफा देना चाहिए । आप इन Payload/MyApp.app/Frameworks यदि ऐप स्विफ्ट में लिखा गया है या इसमें कोई अतिरिक्त चौखटे शामिल हैं, तो इन्हें इस्तीफा देना चाहिए या ऐप इंस्टॉल हो जाएगा, लेकिन रन नहीं होगा।

 $ /usr/bin/codesign -f -s "iPhone Developer: Some Body (XXXXXXXXXX)" --entitlements entitlements.plist Payload/MyApp.app/Frameworks/* 

अब आप ऐप को फिर से कर सकते हैं

 $ zip -qr MyApp-resigned.ipa Payload 

किया हुआ

अब आप Payload निर्देशिका को निकाल सकते हैं क्योंकि आपका मूल ऐप (MyApp.ipa) और आपका इस्तीफा देने वाला संस्करण (MyApp-resigned.ipa) है। अब आप अपने प्रोविजनिंग प्रोफाइल में शामिल किसी भी डिवाइस पर MyApp-resigned.ipa को स्थापित कर सकते हैं।

मैंने सफलतापूर्वक इस उत्तर का पालन किया, लेकिन जब से एंटाइटेलमेंट बदले गए हैं, तो मैंने अंतिम वक्तव्य के लिए --entitlements "Payload/Application.app/Entitlements.plist" भाग को हटा दिया, और यह एक जादू की तरह काम किया।

धन्यवाद, एरिक, यह पोस्ट करने के लिए। यह मेरे लिए काम किया मैं एक अतिरिक्त कदम के बारे में एक नोट जोड़ना चाहता हूं, जिसकी मुझे जरूरत थी। "पेलोड / एप्लिकेशन. app /" के भीतर " CacertChains " नामक एक निर्देशिका थी जिसमें " cacert.pem " नामक एक फ़ाइल थी। इन चरणों को पूरा करने के लिए मुझे डाइरेक्टरी और .pem को निकालना पड़ा। एक बार फिर धन्यवाद! –

फास्टलेन उच्छ्वास के इस्तीफे के विकल्प के साथ आप इसे बहुत आसानी से कर सकते हैं

 sigh resign -p <path-to-profile-with-mobileprovision-ext> -i <code-sighning-identity-of-your-app> 

आप कमांड के ठीक पहले ही उच्छ्वास का उपयोग कर प्रोफ़ाइल डाउनलोड कर सकते हैं।

इनमें से कोई भी इस्तीफा देने वाला मेरे लिए काम नहीं कर रहा था, इसलिए मुझे कुछ और काम करना पड़ा।

मेरे मामले में, मेरे पास एक समयसीमा समाप्त प्रमाणपत्र के साथ एक आईपीए था। मैं ऐप को फिर से तैयार कर सकता था, लेकिन क्योंकि हम यह सुनिश्चित करना चाहते थे कि हम एक ही संस्करण (केवल एक नया प्रमाणपत्र) के वितरण कर रहे थे, हम इसे फिर से बनाना नहीं चाहते थे।

अन्य उत्तरों में उल्लिखित इस्तीफे के तरीके के बजाय, मैंने एक आईपीए बनाने की Xcode की पद्धति को बदल दिया, जो कि निर्माण से एक्सक्शीरिव के साथ शुरू होता है।

  1. मैंने एक मौजूदा। Xcarchive को दोहराया और सामग्री को बदलना शुरू कर दिया। (मैं .dsym फ़ाइल की उपेक्षा की।)

  2. मैंने पुरानी आईपीए फाइल से पुराने ऐप को निकाला (अनजिपिंग के माध्यम से; एप ही पेलोड फ़ोल्डर में एकमात्र चीज़ है)

  3. मैंने इस ऐप को नए .xcarchive में ले जाया गया, Products/Applications तहत ऐप जो जगह में था।

  4. मैं Info.plist संपादित, संपादन

    • ApplicationProperties/ApplicationPath
    • ApplicationProperties/CFBundleIdentifier
    • ApplicationProperties/CFBundleShortVersionString
    • ApplicationProperties/CFBundleVersion
    • Name
  5. मैंने एक्सकोड के संग्रह फ़ोल्डर में .xcarchive, आमतौर पर /Users/xxxx/Library/Developer/Xcode/Archives स्थानांतरित कर दिया।

  6. Xcode में, मैंने आयोजक विंडो खोल दी, यह नया संग्रह उठाया और नियमित रूप से (इस मामले में Enterprise) निर्यात किया

नतीजा यह अच्छा आईपीए था जो काम करता है।

यदि आपके पास विस्तार और / या एक घड़ी ऐप वाला ऐप है और आपके पास प्रत्येक एक्सटेंशन / घड़ी ऐप के लिए एकाधिक प्रोविज़िगेशन प्रोफाइल हैं, तो आपको आईपीए फाइल पर पुनः हस्ताक्षर करने के लिए इस स्क्रिप्ट का उपयोग करना चाहिए।

गिथूब में स्क्रिप्ट पर पुनः हस्ताक्षर

इस स्क्रिप्ट का उपयोग करने का एक उदाहरण यहां दिया गया है:

 ./resign.sh YourApp.ipa "iPhone Distribution: YourCompanyOrDeveloperName" -p <path_to_provisioning_profile_for_app>.mobileprovision -p <path_to_provisioning_profile_for_watchkitextension>.mobileprovision -p <path_to_provisioning_profile_for_watchkitapp>.mobileprovision -p <path_to_provisioning_profile_for_todayextension>.mobileprovision resignedYourApp.ipa 

आप दूसरे एक्सटेंशन प्रोविजनिंग प्रोफाइल को एक और -p विकल्प के साथ जोड़कर भी शामिल कर सकते हैं।

मेरे लिए – सभी प्रावधान प्रोफाइल उसी प्रमाणपत्र / हस्ताक्षर की पहचान के द्वारा हस्ताक्षर किए गए थे।