ERROR ITMS-90164/90046: अमान्य कोड हस्ताक्षर एंटाइटेलमेंट


82

नोट: मैं Xamarin का उपयोग कर विकसित कर रहा हूँ। इसी तरह का प्रश्न यहाँ ज़मीरिन फोरम में पोस्ट किया गया है

मैं एक ऐप बना रहा हूं, जिसका नाम CompanyApp है । तब मैंने इसके लिए एक ऐप आईडी बनाई थी। Com.Company.CompanyApp , डिस्ट्रीब्यूशन प्रोविज़निंग प्रोफाइल के साथ, जो संबंधित ऐप आईडी का उपयोग करता है। मैंने बाइनरी अपलोड की और यह पूरी तरह से ठीक काम किया।

तब मैं पर (मूल रूप से छोटा सा संशोधन के साथ एक ही एप्लिकेशन तो यह एक ही समाधान और परियोजना, बस अलग बंडल पर हस्ताक्षर सेटिंग) अनुप्रयोग के एक डेमो संस्करण बनाने चला गया, CompanyAppDemo नया ऐप आईडी के साथ com.Company.CompanyAppDemo , एक साथ नया वितरण प्रोविज़निंग प्रोफाइल जो नई ऐप आईडी का उपयोग करता है। मैंने नए प्रोविजनिंग प्रोफाइल का उपयोग करने के लिए iOS बंडल साइनिंग विकल्पों को अपडेट किया और आईपीए उत्पन्न किया। लेकिन जब मैंने इसे एप्लिकेशन लोडर पर अपलोड किया, तो मुझे निम्नलिखित त्रुटि मिली:

[2015-01-23 16:08:21 SGT] त्रुटि: त्रुटि ITMS-90164: "अमान्य कोड हस्ताक्षर एंटाइटेलमेंट। आपके ऐप बंडल हस्ताक्षर में एंटाइटेलमेंट प्रावधान प्रोफ़ाइल में निहित लोगों से मेल नहीं खाते हैं। प्रावधान के अनुसार प्रोफ़ाइल, बंडल में एक महत्वपूर्ण मान होता है जिसे अनुमति नहीं है: 'पेलोड / CompanyApp.app / CompanyApp' में कुंजी 'एप्लिकेशन-पहचानकर्ता' के लिए 'TEAMID.com.Company.CompanyApp' "

[2015-01-23 16:08:21 SGT] त्रुटि: त्रुटि ITMS-90046: "अमान्य कोड हस्ताक्षर एंटाइटेलमेंट। आपके आवेदन बंडल के हस्ताक्षर में कोड हस्ताक्षरित एंटाइटेलमेंट शामिल हैं जो iOS पर समर्थित नहीं हैं। विशेष रूप से, मान TEAMID.com.Company "पेलोड / CompanyApp.app / CompanyApp 'में कुंजी' एप्लिकेशन-आइडेंटिफायर 'के लिए .ComAppApp' समर्थित नहीं है। यह मान आपके TEAMID से शुरू होने वाला एक स्ट्रिंग होना चाहिए, इसके बाद एक डॉट '।', उसके बाद बंडल पहचानकर्ता है।"

मैं दिनों से डिबगिंग कर रहा हूं कि कोई फायदा न हो।

मैं सोच रहा हूं कि जब मैंने नई प्रोफ़ाइल पर हस्ताक्षर किए थे, तो एप्लिकेशन लोडर ने जो त्रुटि दी, वह TEAMID.com.Company.Company.Company.CompanyAppDemo के बजाय मूल TEAMID.com.Company.CompanyApp की आईडी को संदर्भित करती है ? क्या यह Xamarin में एक बग है जो गलत प्रोविज़निंग प्रोफ़ाइल उठाता है या क्या मुझे कुछ याद आ रहा है? आपको अलग-अलग ऐप के लिए अलग प्रमाण पत्र की आवश्यकता नहीं है?

ध्यान दें कि मैंने Xamode में हमेशा प्रोविजनिंग प्रोफाइल सूची को Xamarin में iOS बिल्ड साइनिंग विकल्प बदलने से पहले वरीयता दी है।

जवाबों:


133

अगर कोई मेरी तरह ERROR ITMS-90046 की खोज करके यहां पहुंचता है, तो मेरा समाधान यह था कि इसे साफ करें और सभी पहले से तैयार फ्रेमवर्क (कस्टम वाले) को हटा दें और फिर से निर्माण करें।

नोट: त्रुटि विवरण में कुंजी "अप्स-एनवायरनमेंट" के बारे में "विकास" के रूप में कुछ कहा गया है।

संपादित करें: वास्तविक त्रुटि संदेश


क्या आप इसे थोड़ा और समझा सकते हैं?
जॉन

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

धन्यवाद, इससे मुझे अपना मुद्दा ठीक करने में मदद मिली!
दिसदेव

7
मुझे सिर्फ इतना करना था कि क्लीन को ... टेस्टफलाइट में अपलोड किए गए लगभग 50 बिल्ड्स के बाद यह एक नई त्रुटि थी
फमर

2
Xcode पर विकास एक अंतहीन दुःस्वप्न है। जाहिरा तौर पर कोडिंग की तुलना में काम करने के लिए प्रार्थना करना अधिक महत्वपूर्ण है।
एडुआर्डो

63

मुझे एक ही समस्या थी और एक साधारण उत्पाद -> स्वच्छ के साथ हल किया गया था ।


1
धन्यवाद ने मुझे ERROR ITMS-90164 को हल करने के लिए काम किया: "अमान्य कोड हस्ताक्षर एंटाइटेलमेंट। आपके ऐप बंडल हस्ताक्षर में एंटाइटेलमेंट उन लोगों से मेल नहीं खाते हैं जो प्रोविज़निंग प्रोफाइल में निहित हैं। प्रोविजनिंग प्रोफाइल के अनुसार, बंडल में एक महत्वपूर्ण मान होता है। अनुमति नहीं है: 'पेलोड / पलाऊ Moja.app/Palau Moja' "ERROR ITMS-90164:" पेलोड / पलाऊ Moja.app/Palau Moja में कुंजी के लिए 'सही': "अमान्य कोड साइनिंग एंटाइटेलमेंट। आपके ऐप बंडल हस्ताक्षर के हकदार नहीं हैं। जो कि प्रावधान प्रोफ़ाइल में शामिल कर रहे हैं मेल खाते हैं।
जोसफ एस्कोबार

जोसेप और स्वच्छ के रूप में एक ही त्रुटि थी -> संग्रह -> अपलोड फिर से इसे हल करें। इस समाधान को पोस्ट करने के लिए धन्यवाद!
थोड़ा

आप उत्पाद कहाँ करते हैं-> स्वच्छ ? XCode या Visual Studio में? मैं Xamarin, BTW का उपयोग कर विकसित कर रहा हूं।
जेम्स लावरी

20

यदि कोई व्यक्ति ITMS-90164 त्रुटि और ITMS-90046 को त्रुटि -कार्य-अनुमति और एस्प-पर्यावरण कुंजियों के साथ खोज कर यहां प्राप्त करता है:

1

जैसे डेविड पी ने कहा, एक उत्पाद -> एक नए संग्रह से पहले स्वच्छ मेरी समस्या का समाधान किया।

मैं सिर्फ यह जोड़ना चाहता हूं कि मेरे मामले में मैंने देखा कि दोषपूर्ण xarchive निम्नलिखित फ़ाइल को याद कर रहा था:

2

उत्पादन हस्ताक्षर के लिए अपने क्लाइंट के लिए उस .xarchive को भेजने से पहले, आप संग्रहीत-विस्तारित-एंटाइटेलमेंट.xcent फ़ाइल देखना चाहते हैं और सुनिश्चित करें कि यह वहां है।


18

अंत में 2 सप्ताह के बाल खींचने के बाद ।।

कुछ कारणों से, यदि Entitlements.plist में कोई महत्वपूर्ण 'एप्लिकेशन-आइडेंटिफायर' नहीं है, जो TEAMID.com.Company.CompanyAppDemo पर सेट है , तो Xamarin मूल एप्लिकेशन-पहचानकर्ता, अर्थात TEAMID.com.Company.CompanyApp का उपयोग करेगा

तो समाधान यह था कि एप्लिकेशन-आइडेंटिफायर को जोड़ा जाए, जो एंटाइटेलमेंट.प्लिस्ट के अंदर सही एप्लीकेशन बंडल आईडी को निर्दिष्ट करता है। फिर प्लिस्ट को बिल्ड ऑप्शंस> आईओएस बंडल साइनिंग में शामिल करें।


13
xamarin ऐसी उत्पादकता को बढ़ावा देने वाला है!
एंटोन ट्रोपास्को


8

Entitlements.plist में इसे बदलें:

<key>aps-environment</key>
<string>development</string>

इसके लिए:

<key>aps-environment</key>
<string>production</string>

5

यह iTunes कनेक्ट में एक नए अनुबंध से सहमत होने के कारण भी हो सकता है। आईट्यून्स कनेक्ट में लॉग इन करें और आपको नवीनतम अनुबंध परिवर्तन से सहमत होने के लिए शीर्ष पर एक बैनर देखना चाहिए।


1
Your'e a life saver :) Gotta love apple's unrelated error messages
Yoav Schwartz

4

मेरे लिए, समस्या एक Entitlements.plist थी जो ऑटो-जोड़ा गया था और खाली था। इसे कस्टम एंटाइटेलमेंट फ़ील्ड से हटा दिया और समस्या को हल कर दिया।

विजुअल स्टूडियो 2015 पर iOS बंडल साइनिंग का दृश्य


3

यदि आप पैक करने से पहले संबंधित रिलीज़ प्रमाणपत्र का चयन नहीं करते हैं, तो ERROR ITMS-90164 को सूचित किया जाएगा

सेटिंग का निर्माण -> कोड हस्ताक्षर पहचान -> रिलीज -> किसी भी IOS एसडीके


2

सुनिश्चित करें कि आपने ऐप लक्ष्य को चुना है न कि वॉचवेट ऐप को आर्काइव करते समय।


2

अन्य किसी भी उत्तर ने मेरे लिए इस त्रुटि को हल नहीं किया, लेकिन यह किया:

  1. नया XCode एप्लिकेशन बनाएं और इसकी जांच करें कि यह कोड हस्ताक्षर सेटिंग है।

  2. अपने ऐप को डिफॉल्ट XCode 7 या Xcode 8 पर सेट करने के लिए समान रूप से सेट होने की कोशिश करें साइनिंग और प्रोविजनिंग सेटिंग्स, XCode 7 को यहां दिखाया गया है, इसे XCode 8 में फिर से बदल दिया गया है।

प्रावधान और हस्ताक्षर

  1. यदि उपरोक्त पर्याप्त नहीं है, तो आपको इसे फिर से करने की आवश्यकता हो सकती है, लेकिन इस बार, आप ऐसा करने से पहले, अपने ऐप्पल कीरिंग से किसी भी पुराने समाप्त प्रोविज़निंग प्रोफाइल को हटा दें या अपने ऐप्पल डेवलपर (itunes) खाते में फिर से साइन इन करें XCode पसंद। किसी भी परिवर्तन के बाद XCODE और RESTART को बाहर निकालना सुनिश्चित करें। फिर अपने खाते को फिर से जोड़ें, और XCode को अपनी नई हस्ताक्षर और टीम जानकारी लाने दें।

1

मैंने एक git शाखा से एक बिल्ड अपलोड करने की कोशिश की थी जो मास्टर नहीं था। समस्या को हल करने के लिए मैंने शाखा को मास्टर में मिला दिया और फिर से बनाया। मैं तब बिल्ड को सफलतापूर्वक अपलोड करने में सक्षम था।


1

एक परियोजना जिसमें 2 लक्ष्य (2 डेवलपर आईडी, 2 एंटाइटेलमेंट के साथ) शामिल हो सकते हैं। (मुझसे मत पूछो कि यह कैसे हुआ ...)

संग्रह करते समय, अस्थायी रूप से दूसरी एंटाइटेलमेंट फ़ाइल को हटा दें।


1

एक उचित Xcode 'छोड़ना' करना और फिर पुनरारंभ करना अंतिम क्रिया थी जो मुझे इसके लिए काम कर रही थी।

मैंने बंडल पहचानकर्ता (एक डेमो संस्करण के लिए) को बदल दिया था और मेरे अभिलेखीय बिल्ड को सत्यापित करते समय एक ही त्रुटि (प्रश्न में विस्तृत रूप में) मिली। मैं Xcode का उपयोग कर रहा हूं। बस Xcode बंद करना और मेरी परियोजना को फिर से खोलना पर्याप्त नहीं था, लेकिन एक पूर्ण 'छोड़ो' था। शायद कुछ कैश था कहीं मैं अनुमान लगा रहा हूं।


इसने मेरे लिए यह किया। XCode कभी-कभी इतना सूक्ष्म हो सकता है।
एरोन क्रूस

1

मैंने यहां सूचीबद्ध सब कुछ करने की कोशिश की, समस्या .entitlementयह थी कि मेरी फ़ाइल थी, मेरे पास पहली पंक्ति में कभी भी लाइनें नहीं थीं, वे बस किसी तरह जुड़ गए।
उन लाइनों को हटा दिया और फिर से कोशिश की, काम किया।


1

मैंने केवल एंटाइटेलमेंट में नाम बदल दिया है। Applinks से Access डोमेन का मान प्राप्त करें: htts: //domain.app.link to applinks: domain.app.link यह एक आकर्षण की तरह काम करता है। चीयर्स!


0
  1. Build PhaseXcode में जाएं
  2. सभी चौखटे हटा दें
  3. उन्हें वापस जोड़ें
  4. अब बिल्ड-> आर्काइव-> एप स्टोर पर अपलोड करें

हुर्रे, आप इसके साथ कर रहे हैं। समस्या सुलझ गयी


0

मेरे लिए, मैं स्वत: कोड साइनिंग सुविधा को बंद / फिर से चालू करके इसे हल करने में सक्षम था:

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


0

मेरे लिए आईओएस बंडल साइनिंग के तहत मेरी कस्टम एंटाइटेलमेंट सेटिंग में गलत फाइल थी। इसे हटा दिया और यह काम किया!


1
स्क्रीनशॉट अच्छा होगा।
वॉरेन पी

0

कई घंटों की जांच के बाद, मुझे एक आसान समाधान मिला।

एप्लिकेशन अपलोड करने के लिए एप्लिकेशन लोडर का उपयोग करने के बजाय, मैंने XCode से ऑर्गनाइज़र का उपयोग किया और यह अपलोड करते समय बिना किसी चेतावनी के काम किया!


0

मेरी समस्या यह है कि मैं IPA फ़ाइल बनाने के लिए एक गलत बंडल का उपयोग कर रहा था


0

मुझे बिल्कुल वही समस्या थी और यह काफी बेवकूफी थी। मैं नहीं चाहता कि कोई इस पर समय बिताए, इसलिए इस के लिए:

ग़लती

तो यहाँ क्या हुआ, क्या मैं तैनाती के लक्ष्य में '10' दर्ज किया गया था। इसके बजाय 10.0 होना चाहिए था। यही कारण है कि कुख्यात ERROR ITMS-90164/90046 का उत्पादन किया: मेरे लिए अमान्य कोड हस्ताक्षर एंटाइटेलमेंट!



0

मेरे दो सेंट यहाँ।

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

मैं इस मामले के लिए पात्रता के लिए सादे पाठ संपादक का उपयोग करने का सुझाव देता हूं।

धन्यवाद, सैमुअल


0

Stackoverflow i पिछले फ़ाइल "xxxxxx.entitlements" पर पिछले दिनों पढ़ी गई सभी ट्रिक्स को आज़माने के बाद इसे फिर से तैयार करें। मैं क्षमताओं पर क्लिक करता हूं , एसोसिएटेड डोमेन पर ON का चयन करता हूं और "डोमेन" जोड़ता । फिर क्षमताओं पर> पुश नोटिफिकेशन फिक्स पर क्लिक करें "पुश नोटिफिकेशन एंटाइटेलमेंट को अपनी एंटाइटेलमेंट फ़ाइल में जोड़ें"।

यह बनाते हुए मुझे ARCHIVE सक्सेसफुल करने दें


0

मेरे पास इस तरह का एक लिंक webcredentials:https://************.linkथा, जो मेरे अपलोड को विफल कर रहा था। मैंने इसे हटा दिया और समस्या हल हो गई।

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