प्रस्तुत करने पर Xcode 8 "एप्स के हस्ताक्षर से अप्स-एनवायरनमेंट एनटाइटेलमेंट गायब है"


118

मुझे एक ऐप मिला है जिसे हमने पिछले 6 महीनों में दर्जनों संस्करण प्रस्तुत किए हैं और हम APNS का उपयोग करते हैं। मुझे Xcode 8 में अपग्रेड करने के बाद Apple से निम्न ईमेल मिला

प्रिय डेवलपर,

हमने APP_NAME के ​​लिए आपकी हालिया डिलीवरी के साथ एक या अधिक समस्याओं की खोज की है। आपकी डिलीवरी सफल रही, लेकिन आप अपनी अगली डिलीवरी में निम्नलिखित मुद्दों को ठीक करना चाहेंगे:

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

समस्याओं को ठीक करने के बाद, आप iTunes कनेक्ट से एक नया बाइनरी अपलोड करने के लिए Xcode या एप्लिकेशन लोडर का उपयोग कर सकते हैं।

सादर,

ऐप स्टोर टीम

क्या अजीब बात है, मैं developer.apple.com पर गया हूं -> प्रमाण पत्र, पहचानकर्ता और प्रोफाइल और मेरे AppId में पुश सूचनाएं सक्षम हैं। मैं कुछ अलग नहीं कर रहा हूँ तो मैंने कभी इस पर किया है तो उत्सुक हूँ अगर Xcode 8 अपडेट ने कुछ तोड़ दिया। कोई विचार?

BTW: पुश नोटिफिकेशन प्रोग्रामिंग गाइड के लिए उन्होंने जो लिंक डाला था, वह ईमेल में टूट गया था, इसलिए यह अच्छा संकेत नहीं है।

जवाबों:


156

वास्तव में बहुत आसान है। किसी कारण से यह Xcode 8 पर अक्षम हो गया, लेकिन लक्ष्य पर जाएं -> क्षमताएं और सत्यापित करें कि पुश सूचनाएँ उस दृश्य पर सभी सही हैं। मेरे लिए यह एक "फिक्स मी" था जिसे मुझे क्लिक करना था, और वॉइला।


4
इस समस्या के बारे में अजीब बात यह समाधान नहीं था, यह तथ्य था कि Xcode 7 पर यह सक्षम था और उन्नयन के बाद यह अक्षम हो गया।
17

2
मुझे एंटाइटेलमेंट फ़ाइल में भी जाना था और एपीएस पर्यावरण मूल्य को 'उत्पादन' में बदलना था क्योंकि इसे बनाए जाने के बाद डिफ़ॉल्ट रूप से 'विकास' के लिए सेट किया गया था।
बेक

61
Apple में हाल ही में कुछ दिमागी रूप से काम पर रखे गए लोगों को होना चाहिए .. क्यों वे डिफ़ॉल्ट रूप से चीजों को अक्षम करके और बिना किसी चेतावनी के अनुचित मान सेट करके डेवलपर्स के समय को खो रहे हैं। मैं, प्रोफाइल, प्रमाण पत्र बनाने अन्य कष्टप्रद बातें डिबगिंग और में एक दिन खो दिया है ..
ह्रिस्टो अटानासोव

3
आखिरकार! यह हास्यास्पद है कि यह काम करना इतना कठिन है। मैं लगभग 5 घंटों के लिए सेरेट्स / प्रोफाइल को हटा रहा हूं और पुन: बना रहा हूं। अच्छी बात यह है कि मैं कह सकता हूं कि मैं पूरी तरह से समझता हूं कि अब ये समारोह / प्रोफाइल / पहचानकर्ता क्या हैं :) इस संकेत के लिए धन्यवाद।
कामिल रायकोव्स्की

4
@ आप ध्यान दें कि शायद आपको इसे विकास के रूप में छोड़ देना चाहिए। यह iTunes Connect पर अपलोड होने पर अपने आप प्रोडक्शन में बदल जाता है।
Montdidier

84

मेरे पास भी यही समस्या है, और मुझे यकीन है कि Xcode8 में पुश अधिसूचना डिफ़ॉल्ट रूप से बंद है। मैंने इसे नोटिस नहीं किया। इसके बारे में सावधान रहें।

क्षमता


क्या आप मुझे बता सकते हैं कि मेरे खाते में अधिसूचना अनुभाग क्यों नहीं है?
अनुज

28

Xcode 8 में एक बदलाव हुआ, जहां आपके एंटाइटेलमेंट अब App Identifiers से नहीं, बल्कि आपके ऐप लक्ष्य में चुनी गई क्षमताओं से आते हैं। इसलिए, जैसे कि अनोम (ओपी) ने कहा, आपको यह सत्यापित करना होगा कि पुश सूचनाएं चालू हैं।

मेरे लिए, यह "फिक्स मी" बटन नहीं था, लेकिन मेरे पास दो एंटाइटेलमेंट फाइलें थीं (एक विकास के लिए और दूसरा वितरण के लिए)। पुश नोटिफिकेशन क्षमता को टॉगल करने से aps-environmentकुंजी - मान के साथ development- विकास एंटाइटेलमेंट फ़ाइल में जुड़ जाएगी, लेकिन यह वितरण एंटाइटेलमेंट फ़ाइल में नहीं जोड़ेगी। वितरण के लिए एक ही कुंजी को कॉपी करने से iTunes कनेक्ट को अपलोड करते समय चेतावनी ईमेल से छुटकारा पाने के लिए काम किया।

अधिकांश परियोजनाओं के लिए, यह पुश सूचनाओं पर टॉगल करने के लिए पर्याप्त होना चाहिए, या यदि यह पहले से ही है, लेकिन कुंजी एंटाइटेलमेंट में नहीं है, तो इसे फिर से चालू करने का प्रयास करें।


यह वह नाव है जिसमें मैं इस बात को छोड़कर हूं कि मैं .entitlementsवर्तमान कॉन्फ़िगरेशन / योजना के लिए अपनी फ़ाइल में जो भी निर्दिष्ट करता हूं , वह हमेशा इसका उपयोग productionकरता है aps-environment
अल्बर्ट बोरी

कैपिबिलिटी में टॉगल पुश नोटिफिकेशन मेरे Xcode 8 को क्रैश कर देता है !!
djay

2
@ अल्बर्टबोरी अजीब, मैं इसे केवल विकास दिखाने के लिए प्राप्त कर सकता था, जो ठीक था क्योंकि जब यह संग्रहीत हुआ, तो यह दिखाई दिया production
टाइमगर्लसन

6
@meteors यह ठीक होना चाहिए अगर मूल्य है development। प्रोजेक्ट के संग्रहीत होने पर इसे ipa में बदल दिया जाएगा।
टाइमगर्लसन

2
@timgcarlson यह वास्तव में संग्रह के दौरान नहीं होता है। यह सबमिशन के दौरान या एक्सपोर्ट होने पर होता है। यह जाँचने के लिए कुछ उपयोगी जानकारी भी यहाँ सही तरीके से सेट की जा रही है: developer.apple.com/library/content/qa/qa1798/_index.html
मार्क लियोनार्ड

27

Xcode रिलीज़ नोट्स से :

Xcode 8 स्वचालित रूप से बिल्ड समय पर प्रोविजनिंग प्रोफाइल से अप्स-एनवायरनमेंट एनटाइटेलमेंट को कॉपी नहीं करता है। यह व्यवहार जानबूझकर किया गया है। इस एंटाइटेलमेंट का उपयोग करने के लिए, या तो प्रोजेक्ट संपादक की क्षमताएँ फलक में पुश सूचनाएँ सक्षम करें, या अपने एंटाइटेलमेंट फ़ाइल में एंटाइटेलमेंट को मैन्युअल रूप से जोड़ें। (28076333)

यह एक महान बदलाव है क्योंकि यह हमेशा काफी अजीब था कि अप्स-एनवायरनमेंट एनटाइटेलमेंट को प्लेस्ट की आवश्यकता नहीं थी, लेकिन कई अन्य ने किया।

आप में से जो केवल "फिक्स मी" को आँख बंद करके नहीं चाहते हैं और वर्तमान में उनके पास एंटाइटेलमेंट फ़ाइल नहीं है, यह सिर्फ एक फाइल फाइल है जिसे "कोड साइनिंग एंटाइटेलमेंट्स" के तहत आपके प्रोजेक्ट की बिल्ड सेटिंग्स में संदर्भित किया गया है।


1
मैं लिंक किए गए नोट्स में वह बोली नहीं ढूंढ सका!
इलियन ओनोफ्रेई

मुझे नहीं पता कि किसने मेरी टिप्पणी को गलत ठहराया और क्या गलत था, लेकिन मैं इसे अब भी पा सकता हूं।
इयूलियन ओनोफ्रेई

13

Xcode 8 के साथ संघर्ष के एक दिन बाद हम यह पता नहीं लगा सके कि aps-environmentविकास को हमारे डिबग बिल्ड में क्यों नहीं जोड़ा गया। यह डिबग परीक्षण के लिए अंतर्निहित ऐप में एंटाइटेलमेंट सेक्शन से गायब था ... भले ही हमने नई क्षमता का पता लगाया था और एंटाइटेलमेंट फ़ाइल मौजूद थी। मुद्दा यह है कि डिबग एंटाइटेलमेंट के लिए Xcode बिल्ड सेटिंग्स में किसी भी SDK के लिए एंटाइटेलमेंट फ़ाइल सेट करने की आवश्यकता है।

स्क्रीनशॉट


मुझे नहीं लगता कि Debugकुंजी के लिए मान सेट करने और उसे Debug> Any SDKएक के लिए सेट करने के बीच कोई अंतर है , क्योंकि बाद का उपयोग किसी विशेष एसडीके के लिए मूल्य को ओवरराइड करने के लिए किया जाता है।
इयूलियन ओनोफ्रेई

यह मेरे लिए समाधान है
हिमंत

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

यह अभी भी Xcode 8.3.3 पर कुछ मामलों में एक मान्य समाधान है
dan

काश मैं इसे एक लाख बार वोट कर सकता। मैं एक हफ्ते से संघर्ष कर रहा हूं, और यह समाधान था। कोड साइनिंग एंटाइटेलमेंट में फ़ाइल पथ को शीर्ष पर टाइप करना पर्याप्त नहीं था, इसे "किसी भी एसडीके" भाग में भी किया जाना था। यह मेरे लिए इसे हल करने की कुंजी थी।
रॉबर्ट बेंटले

7

मुझे Apple से XCode 7.3.1 का उपयोग करके एक ही ईमेल मिला। समस्या को हल करने के लिए मैंने क्या किया:

  1. क्षमताओं के तहत> PUSH अधिसूचना सेट करें जैसा कि @Bruce Tsai उत्तर में कहा गया है।
  2. बिल्ड-सेटिंग्स के तहत> कोड साइनिंग> कोड साइनिंग आइडेंटिटी डिबग के लिए डेवलपर सर्टिफिकेट और रिलीज के लिए डिस्ट्रीब्यूशन सर्टिफिकेट सेट करता है, जैसा कि इमेज में दिखाया गया है:

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


नमस्ते, क्षमताओं में मुझे क्षमताएं नहीं मिल रही हैं> PUSH अधिसूचना सेट करें
अनुज

@ अनुज, मैंने एक स्क्रीनशूट जोड़ा जहां यह आपके एक्सकोड में होना चाहिए।
रूबेन

5

यदि आप फायरबेस फ्रेमवर्क का उपयोग कर रहे हैं और पुश नोटिफिकेशन का उपयोग नहीं कर रहे हैं, तो दो समाधान हैं। बस 'इश्यू' संदेश के साथ डालें जो हर बार बाइनरी अपलोड करने पर आपकी पूरी टीम को भेजा जाता है। जब तक आप वास्तव में सूचनाओं का उपयोग नहीं कर सकते हैं तब तक एप्लिकेशन को एक सबमिशन के रूप में स्वीकार किया जाएगा, आप चेतावनी को अनदेखा कर सकते हैं। या 2. ऐसा करते हैं: https://stackoverflow.com/a/46802075/7529450 । यह कष्टप्रद ईमेल सूचना को हटा देगा और जमा के रूप में भी स्वीकार कर लिया जाएगा।


4

स्वचालित रूप से हस्ताक्षर करने का प्रबंधन मेरे लिए बंद था

स्वचालित रूप से हस्ताक्षर करने का प्रबंधन मेरे लिए बंद था, मैंने जांच की और मेरे लिए ठीक काम किया।


3

Xcode 9 पुश नोटिफिकेशन का उपयोग सक्षम किया गया था।

मैंने पुश अधिसूचना क्षमताओं को अक्षम / पुनः सक्षम करने का प्रयास किया । (काम नहीं किया)

मैंने स्वचालित रूप से हस्ताक्षर करने का प्रबंधन अक्षम / पुनः सक्षम करने का प्रयास किया । (काम नहीं किया)

पता चलता है कि मुझे अपने प्रोविज़निंग प्रोफाइल को हटाना और फिर से जोड़ना था। ( यहां देखें कि यह कैसे करना है ) आपको वार्डों के बाद हस्ताक्षर को स्वचालित रूप से प्रबंधित करने / फिर से सक्षम करने के लिए अक्षम करना पड़ सकता है ।


2

मेरे लिए समस्या यह थी क्योंकि दो एंटाइटेलमेंट फाइलें थीं: Entitlements-Debug.plistऔर Entitlements-Release.plist। और उनमें से केवल एक (डीबग) को इसमें सेटिंग्स की आवश्यकता है।

बिल्ड सेटिंग्स के कई मूल्य बदलना > साइनिंग> कोड हस्ताक्षर एंटाइटेलमेंट को एक MyAppName/MyAppName.entitlementsऔर फिर सक्षम करने में सक्षमताएँ > पुश सूचनाएँ स्विचर ने मेरे लिए चाल चली ।

आशा करता हूँ की ये काम करेगा।


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