संहिताबद्ध त्रुटि: समय सीमा समाप्त प्रोफ़ाइल को हटाने के बाद प्रोविजनिंग प्रोफ़ाइल नहीं मिल सकती है


500

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

कोड साइन त्रुटि: प्रोविजनिंग प्रोफाइल (लंबी स्ट्रिंग) नहीं मिल सकती है।

मैं क्या खो रहा हूँ? मैंने संबंधित प्रश्नों को देखा और इस परिदृश्य को पहले से नहीं देखा था।

जवाबों:


856

कभी-कभी आपकी xcode प्रोजेक्ट फ़ाइल गड़बड़ हो जाती है, खासकर यदि आपके पास कोई पुराना प्रोजेक्ट है और पहले इसे xcode / iphone sdk के पुराने संस्करण के साथ बनाया गया है। आपको एक पाठ संपादक में प्रोजेक्ट फ़ाइल खोलने की आवश्यकता है, अपनी त्रुटि से 'लंबी स्ट्रिंग' की खोज करें और उस पंक्ति को मैन्युअल रूप से मिटा दें। वास्तव में, आपको बस आगे बढ़ना चाहिए और किसी भी प्रावधान को मिटा देना चाहिए जो किसी भी प्रावधान प्रोफाइल की ओर इशारा करता है। फिर एक्सकोड में प्रोजेक्ट को फिर से खोलें, सेटिंग्स पर जाएं और अपनी नई प्रोफ़ाइल को फिर से आकार दें। यह ज्यादातर समय की तरह मुद्दों को साफ करता है। प्रोविजनिंग प्रोफाइल की ओर इशारा करती लाइनें इस तरह दिखेंगी:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

210
.Xcodeproj फ़ाइल वास्तव में एक निर्देशिका है, एक एप्लिकेशन बंडल की तरह, यदि आप इसे खोजक में राइट क्लिक करते हैं, तो आप शो पैकेज सामग्री का चयन कर सकते हैं, और फिर आपको अंदर कई फाइलें दिखाई देंगी (या टर्मिनल में बस सीडी में)। वास्तविक प्रोजेक्ट फ़ाइल .pbxproj एक्सटेंशन के साथ वहां मौजूद है। एक बार जब आप इसे एक टेक्स्ट एडिटर के साथ खोलते हैं, तो आप जिन लाइनों को देख रहे हैं, उन्हें 'PROVISIONING_PROFILE =' या '' PROVISIONING_PROFILE [sdk = iphoneos *] "= 'से शुरू करना चाहिए। उन सभी को हटा दें और फिर आपको अच्छा होना चाहिए।
ब्रैड द ऐप गाइ

2
मैंने पाया कि, उपरोक्त के अलावा, मुझे अपने सभी प्रोफाइल डिलीट करने थे, उन्हें प्रोविजनिंग पोर्टल से फिर से डाउनलोड करना था, और उन्हें XCode में रीमपोर्ट करना था। फिर, बिल्ड सेटिंग्स / कोड साइनिंग में, सभी बिल्ड कॉन्फ़िगरेशन के लिए उचित प्रोफ़ाइल का चयन करें।
Jay Imerman

11
2012 में XCode4 के साथ अभी भी एक मूल्यवान सलाह। धन्यवाद!
एलेक्सी रुसाकोव

6
... 2014 में Xcode6 के साथ अभी भी मूल्यवान सलाह! बहुत बहुत धन्यवाद!
टॉम वैन ज़ुमरेन

4
मेरे लिए काम करने वाली एकमात्र चीज़: प्राथमिकताएँ -> लेखा -> विवरण देखें -> ताज़ा करें। यह देव पोर्टल से सभी प्रोविज़निंग प्रोफाइल को पुनः लोड करता है। आशा है कि यह किसी की मदद करता है
ब्लैकहॉक 4152

129

यहाँ एक सरल समाधान है जो मेरे लिए काम किया है और जिसे परियोजना फ़ाइल के मैनुअल संपादन की आवश्यकता नहीं है:

XCode में, "समूह और फ़ाइलें" फलक में, "लक्ष्य" का विस्तार करें और अपने ऐप के लक्ष्य पर डबल-क्लिक करें। यह लक्ष्य के लिए जानकारी फलक लाता है। "बिल्ड" अनुभाग में, किसी भी पुराने प्रोफाइल के लिए "कोड साइनिंग" अनुभाग की जांच करें और सही एक के साथ बदलें।

ध्यान दें कि यह आपके प्रोजेक्ट आइकन पर डबल-क्लिक करने और वहां से प्रोफ़ाइल बदलने से अलग है। सचमुच अद्भुत :)

Ori


1
धन्यवाद! मैं अगली बार ऐसा होने की कोशिश करूँगा :)
क्वांटम्पोटेटो

6
और पहले बिल्ड कॉन्फिगरेशन का सही चयन करना सुनिश्चित करें :)
जॉन्स

1
यह हमेशा काम नहीं करता है। कभी-कभी आपको अभी भी अंदर जाना पड़ता है और इसे मैन्युअल रूप से बदलना पड़ता है जैसे कि यह पहले उत्तर में दिखाता है।
स्पेसट्रैकर

SpaceTrucker को प्रतिध्वनित करने के लिए बस एक और नोट: यह विधि हमेशा काम नहीं करती है। स्वीकृत जवाब गारंटी देता है कि Xcode उस प्रेत प्रोफ़ाइल की तलाश करना बंद कर देगा।
सिमोन मंगनेली

मैंने पाया कि, उपरोक्त के अलावा, मुझे अपने सभी प्रोफाइल डिलीट करने थे, उन्हें प्रोविजनिंग पोर्टल से फिर से डाउनलोड करना था, और उन्हें XCode में रीमपोर्ट करना था। फिर, बिल्ड सेटिंग्स / कोड साइनिंग में, सभी बिल्ड कॉन्फ़िगरेशन के लिए उचित प्रोफ़ाइल का चयन करें।
जे इमरमान

76
  1. परियोजना और लक्ष्य गुण -> "कोड साइन न करें" -> ठीक है -> cmd + S (या cmd + B);
  2. प्रोजेक्ट और लक्ष्य गुण -> "आपका प्रावधान प्रोफ़ाइल" -> ठीक है

  3. सब कुछ फिर से काम करता है!


4
यह एकमात्र समाधान है जो मेरे लिए काम कर रहा है (XCode4 का उपयोग करके)। "डोंट कोड साइन" के साथ ऐप का निर्माण करना मेरे लिए एक अनिवार्य कदम था।
चज़बोट

यह 200+ अपवॉट वाले एक से बेहतर समाधान की तरह लगता है, क्योंकि Xcode भविष्य में इसकी प्रोजेक्ट फ़ाइल लिखने के तरीके को बदल सकता है।
१०:११

1
यह सही शील है जिसने मेरे लिए Xcode 4.2
सेल्विन

10

मैं ब्रैड के उत्तर से सहमत हूं, कि आप अपने लक्ष्य / परियोजना को हाथ से संपादित करके इस समस्या को ठीक कर सकते हैं, इस तरह किसी भी रेखा को हटा सकते हैं:

PROVISIONING_PROFILE = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "487F3EAC-05FB-4A2A-9EA0-31F1F35760EB";

हालाँकि, Xcode 4.2 और बाद में, इस टेक्स्ट को एक्सेस करने और इसे सेलेक्ट करने और डिलीट करने का बहुत आसान तरीका है। बाईं ओर प्रोजेक्ट नेविगेटर में, अपनी परियोजना (प्रोजेक्ट नेविगेटर की सबसे ऊपरी पंक्ति) का चयन करें। अब बस View> Version Editor> Show Version Editor चुनें। यह आपकी परियोजना को पाठ के रूप में प्रदर्शित करता है, और आप PROVISIONING की खोज कर सकते हैं और परेशानी की रेखा को हटा सकते हैं, वहीं Xcode के संपादक फलक में।


इसके बाद आपको प्रोजेक्ट बंद और खोलना नहीं पड़ेगा। बेहतर दृष्टिकोण :)
वायरल

6

बस इस मुद्दे पर एक भिन्नता देखी गई: मैं ब्रैड स्मिथ के ऊपर दिए गए नोट्स के अनुसार प्रोजेक्ट.pbxproj फ़ाइल में गया था, इस मामले को छोड़कर, सभी PROVISIONING_PROFILE लाइनें सही लग रही थीं, जिसमें "खराब" स्ट्रिंग स्ट्रिंग की कोई घटना नहीं थी, जो XCode cann 'नहीं मिल रहा है।

हालाँकि, ठीक यही था: Project.pbxproj में सभी PROVISIONING_PROFILE लाइनों को हटाना, भले ही वे सिद्धांत रूप में "अच्छे" दिखे, और फिर XCode में परियोजना को फिर से खोलना।


4

पूरी तरह से टर्मिनल में ब्रैड के समाधान को प्राप्त करने के लिए, इन कमांड का उपयोग करें

  1. cd [Xcode project parent]
  2. vi [Xcode project name].xcodeproj/project.pbxproj
  3. /[offending provisioning profile] [Enter]
  4. dd - पूरी लाइन हटा दें
  5. प्रेस n जब तक कोई और अधिक पाए जाते हैं
  6. Ctrl + x सहेजने और बंद करने के लिए

3

मेरे मामले में विंडो को खोलने से समस्या हल हो गई -> आयोजक, मेरे डिवाइस का चयन और दाईं ओर "प्रावधान" पैनल के तहत पुराने प्रोविजनिंग प्रोफाइल को हटा दिया। पुराने को पहले से ही लाल "x" प्रतीक के साथ चिह्नित किया गया था लेकिन iPhone अभी भी इसका उपयोग कर रहा था।

उस प्रोफ़ाइल के अलावा, नया भी दिखाई दे रहा था (उसी नाम के साथ) और बस आवेदन को पुनः जारी करने के बाद मैंने इसे आसानी से चलाया।


+1, कभी-कभी मैं समाप्त हो गया है क्योंकि मैं एक ही पहचानकर्ता के साथ भी नहीं - समाप्त प्रोफ़ाइल स्थापित करने में असमर्थ रहा हूँ! - मेरे डिवाइस पर था।
क्वांटम्पोटेटो

इसने मेरे लिए काम किया, लेकिन मुझे इसे काम करने के लिए XCode को फिर से जारी करना पड़ा।
मैट

3

बस ऐसा करने में एक घंटे का समय लगा और ब्रैड की सलाह और कुछ अतिरिक्त बदलावों के साथ यह सब काम कर गया।

मैंने इसे निम्नलिखित का उपयोग करके किया है: 10.7.3, Xcode 4.3.2, iOS 5.1 btw।

1) अपने पर राइट क्लिक करें myapp.xcodeprojऔर पैकेज सामग्री चुनें

2) project.pbxprojएक टेक्स्ट एडिटर के साथ खुला (टेक्स्टडिट की सिफारिश न करें क्योंकि यह प्रारूपण को खराब कर सकता है)

3) जब तक आप खोज नहीं लेते तब तक सभी तरह से नीचे स्क्रॉल करें /* Begin XCBuildConfiguration section */

4) ध्यान दें कि आपके पास एक डीबग और रिलीज़ अनुभाग हैं

5) रिलीज सेक्शन पर एक नज़र डालें CODE_SIGN_IDENTITYऔर "CODE_SIGN_IDENTITY[sdk=iphoneos*]"इसे कुछ इस तरह देखना चाहिए:

CODE_SIGN_IDENTITY = "iPhone Distribution: MyCompany LLC";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: MyCompany LLC";

6) एक नज़र रखना PROVISIONING_PROFILEऔर "PROVISIONING_PROFILE[sdk=iphoneos*]"वे इस तरह दिखना चाहिए:

PROVISIONING_PROFILE = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";

यह Xcode में आपके प्रोविज़निंग प्रोफाइल से मेल खाना चाहिए। यह देखने के लिए कि क्या वे ओपन Xcode> विंडो> ऑर्गनाइज़र> डिवाइसेस> प्रोविजनिंग प्रोफाइल> प्रोफाइल पर राइट क्लिक करते हैं> फाइंडर में पता चलता है> .Mobileprovision का फ़ाइल नाम आपकी प्रोफ़ाइल आईडी है।

7) नीचे स्क्रॉल करें project.pbxprojऔर रिलीज़ अनुभाग का दूसरा उदाहरण ढूंढें। रिलीज सेक्शन का दूसरा उदाहरण एक टिप्पणी के साथ समाप्त होना चाहिए/* End XCBuildConfiguration section */

8) सुनिश्चित करें कि दूसरा खंड पहले खंड से मेल खाता है ताकि CODE_SIGN_IDENTITY, "CODE_SIGN_IDENTITY[sdk=iphoneos*], और PROVISIONING_PROFILEसभी में भरा हो।


2

एक सुझाव जो मैं अभी तक किसी को भी नहीं बताऊंगा, कृपया बताएं: कृपया कृपया अपने संपूर्ण .xcodeproj फ़ाइल का बैकअप बना लें, इससे पहले कि आप इसकी सामग्री को संशोधित करना शुरू करें। प्रोजेक्ट फ़ाइल को खराब करने और बैकअप न होने से बहुत ही अप्रिय अनुभव होगा।

किसी सम्पादन से वापस बाहर होने में सक्षम होना एक गॉडसेंड हो सकता है।


हां, यही कारण है कि एससीएम देवताओं ने स्रोत नियंत्रण बनाया।
23

1

मुझे अपने XCode4 में बस इस समस्या का सामना करना पड़ा। इसे ठीक करने के लिए, आपको सभी सही प्रावधानों को डीबग और रिलीज़ कॉन्फ़िगरेशन में डालने की आवश्यकता है।

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

यह इसे ठीक करता है और मुझे सामान्य रूप से संग्रह करने में सक्षम बनाता है। उम्मीद है की वो मदद करदे।


1

किसी भी आईओएस एसडीके के तहत कोडिंग में लाइनों का चयन करें और सही प्रमाण पत्र का चयन करें।


1

ब्रैड स्मिथ के समाधान ने मेरे लिए काम किया, लेकिन मुझे इसे काम करने के लिए CODE_SIGN_IDENTITY फ़ील्ड को भी निकालना पड़ा।


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

0

दुर्भाग्य से यह दृष्टिकोण मेरे लिए कारगर नहीं रहा। लेकिन यहाँ एक फिक्स है जो मेरे लिए काम करता है (यह काम करने के लिए आपको सबवर्सन पर काम करने वाली प्रोजेक्ट फ़ाइल की आवश्यकता है):

मैंने अपनी परियोजना फ़ाइल के कार्यशील संस्करण में वापस रोल किया। जैसा कि Xcode ( जहाँ Xcode 4 के सोर्स कंट्रोल में 'रिवर्ट' विकल्प है ) के साथ वापस करना संभव नहीं है - मैंने Tortoise, मेरे विंडोज मशीन और इस ट्यूटोरियल ( http://tortoisesvn.net/docs/nightly-TortoiseSVN_en का उपयोग किया है। /tsvn-howto-rollback.html ) एक पुरानी परियोजना फ़ाइल पर वापस जाने के लिए।

जैसा कि ट्यूटोरियल ने मेरे लिए काम नहीं किया, मैंने अपनी परियोजना फ़ाइल के कामकाज संशोधन को एक यूएसबी स्टिक से बचाने के लिए इसे अपने मैक पर पोर्ट करने के लिए बस कछुआ का उपयोग किया। उसके बाद मैंने पुराने टूटे हुए प्रोजेक्ट के साथ नई टूटी हुई प्रोजेक्ट फाइल को बदल दिया, सफाई की और इसने एक आकर्षण की तरह काम किया!


0

मुझे समस्या हो रही थी क्योंकि मैंने अपने AdHoc प्रोविजनिंग प्रोफाइल को कुछ नए उपकरणों के साथ TestFlight पर उपयोग के लिए अपडेट किया था। ऐसा माना जा रहा है क्योंकि xcode में प्रोजेक्ट या लक्ष्यों के लिए कोडिंग बिल्ड सेटिंग्स या तो आपके प्रोविजनिंग प्रोफाइल का पुराना संदर्भ है। मेरा तय करने का तरीका यह था:

  1. टारगेट बिल्ड सेटिंग्स और प्रोजेक्ट बिल्ड सेटिंग्स, दोनों पर जाएं, कोड साइनिंग के तहत सभी प्रोविजनिंग प्रोफाइल को किसी और चीज़ में बदल दें।
  2. आयोजक में उपकरणों / प्रोविज़निंग प्रोफाइल पर जाएं, अपमानजनक प्रोफाइल हटाएं, फिर नीचे दाईं ओर ताज़ा बटन पर क्लिक करें।
  3. लक्ष्य पर वापस जाएँ और सेटिंग्स का निर्माण करें और अपनी प्रोविज़निंग प्रोफाइल को उपयुक्त (उम्मीद) नए रीफ़्रेश किए गए प्रोफ़ाइल्स पर सेट करें।

0

कम से कम Xcode 5 में, यह वह चीज है जिसने मेरे लिए समस्या हल की है:

प्रोविजनिंग प्रोफाइल के तहत, ऑफेंडिंग प्रोविजनिंग प्रोफाइल का चयन करें और फिर पुल-डाउन मेनू में एक वैध प्रोविजनिंग प्रोफाइल का चयन करें।

यहाँ छवि विवरण दर्ज करें


0

आप प्रोविज़निंग फ़ाइल के पुराने संदर्भ को हटा सकते हैं। फिर नए प्रोविजनिंग प्रोफाइल को आयात करने और Xcode बिल्डर का चयन करने के बाद।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.