आवेदन के लिए कोई मान्य 'अप्स-एनवायरनमेंट' एंटाइटेलमेंट स्ट्रिंग नहीं मिला


83

मैं पुश अधिसूचना का समर्थन करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर करने का प्रयास कर रहा हूं, लेकिन यह त्रुटि प्राप्त कर रहा है: टोकन प्राप्त करने में विफल, त्रुटि: त्रुटि डोमेन = NSCocoaErrorDomain कोड = 3000 "कोई मान्य 'अप्स-एनवायरनमेंट' 'के लिए पात्रता स्ट्रिंग नहीं मिला" UserInfo = 0x1f818fc0 { NSLocalizedDescription = आवेदन के लिए कोई मान्य 'अप्स-एनवायरनमेंट' एंटाइटेलमेंट स्ट्रिंग नहीं

  • मैंने अपने ऐप को पुश नोटिफिकेशन (केवल इस बिंदु पर विकास के लिए) का समर्थन करने में सक्षम किया।
  • मैंने पुश सूचनाओं को सक्षम करने के लिए प्रोविजनिंग प्रोफाइल AFTER बनाया।
  • मेरा बंडल पहचानकर्ता प्रोफ़ाइल में जैसा दिखता है वैसा ही है।
  • मेरी प्रोफ़ाइल फ़ाइल में एक स्ट्रिंग है: aps-environment
  • मैंने यह सुनिश्चित किया कि "कोड साइनिंग आइडेंटिटी" सेक्शन के तहत प्रोजेक्ट और टारगेट दोनों में सभी मूल्य मेरे प्रोविज़निंग प्रोफाइल के लिए चुने गए हैं।

कोई और विचार? धन्यवाद।


इस बारे में कोई जानकारी नहीं? ऐसा लग रहा है कि कुछ लोग मुठभेड़ करेंगे ...
बेसन

जवाबों:


64

मेरे मामले में, मेरे प्रावधान प्रोफ़ाइल में सामान:

security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision 
...
<key>application-identifier</key>
<string>P5GM95Q9VV.com.dca.spolsky</string>
<key>aps-environment</key>
<string>development</string>

ऐप में मौजूद सामान से अलग था जो वास्तव में बनाया गया था (आप यह पता लगा सकते हैं कि यह Xcode के लॉग्स टैब को देखकर बनाया गया है)

codesign -d --entitlements - '/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'
<dict>
    <key>application-identifier</key>
    <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
    <key>get-task-allow</key>
    <true/>
    <key>keychain-access-groups</key>
    <array>
        <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string>
    </array>
</dict>

यह तब भी सच था , हालांकि कोड साइनिंग आइडेंटिटी के तहत "वर्तमान में मेल खाता" संकेत पाठ सही प्रोविज़निंग प्रोफाइल - अजीब, हुह का संकेत दे रहा था? अजीब कहानी को अजीब बनाने के लिए, मेरे द्वारा चलाने पर डिवाइस पर सही प्रोविज़निंग प्रोफ़ाइल स्थापित की जा रही थी, (सेटिंग्स-> सामान्य-> प्रोफ़ाइल) प्रोविजनिंग प्रोफ़ाइल को सही मानने के लिए मेरा नेतृत्व कर रहा था - लेकिन यह वाइल्डकार्ड आईडी पर वापस आ रहा था जब ऐप वास्तव में लॉन्च किया गया था

इन दो कमांड के आउटपुट में सुराग का अंतर था:

Y2X6Z7Z2GR .com.dca Spolsky-ios बनाम P5GM95Q9VV .com.dca। Spolsky

जब मैंने बोल्ड पार्ट मैच किया, इटैलिकाइज्ड पार्ट अपने आप मैच के लिए बदल गया। इसके अतिरिक्त, सुरक्षा और कोडसाइन का आउटपुट समझौते में था, और कोई और अधिक-एंटाइटेलमेंट त्रुटि नहीं थी।

यहाँ मेरा अनुमान है कि XCode मेरे गैर-वाइल्डकार्ड आईडी पर एक वाइल्डकार्ड-शैली मैच का उपयोग कर रहा था। ("स्पोलस्की", आखिरकार, लगभग "स्पॉल्स्की-आईओएस") है, और यह "वर्तमान में मिलान" आउटपुट की व्याख्या करता है। लेकिन बिल्ड चेन में कुछ इस बारे में अधिक सख्त है, इसलिए यह बिल्ड के दौरान एक वास्तविक वाइल्डकार्ड आईडी पर वापस आ जाता है ।


7
मुझे एक समान समस्या का अनुभव हुआ: प्रोजेक्ट 'बिल्ड सेटिंग्स' TARGET 'बिल्ड सेटिंग्स' से अलग थे ... मेरे मामले में, मेरी लक्ष्य सेटिंग्स गलत प्रोविज़निंग प्रोफाइल के लिए डिफ़ॉल्ट थीं।
रोब

1
यह पता लगाने पर प्रॉप्स, मुझे एक ही मुद्दे का सामना करना पड़ा।
कोडमेक

1
मेरे एक सहकर्मी के पास यह प्रावधान मुद्दा था। हालाँकि, मैं केवल Xcode में प्रोफाइल सेटिंग्स में जाने के बाद नॉन-वाइल्डकार्ड प्रोविजनिंग कुंजी का चयन करने में सक्षम था और सर्टिफिकेट / प्रोविजनिंग कीज़ की सूची को रिफ्रेश करने के लिए।
cbh2000

1
'डीबग' के लिए मेरी लक्ष्य सेटिंग्स iOS डेवलपर / स्वचालित का उपयोग कर रही थीं, जो मेरे .app को गलत कोड साइनिंग आइडेंटिटी के साथ बाहर आने का कारण बना रहा था। मुझे अपनी परियोजना और लक्ष्य की सेटिंग को डिबग और रिलीज़ के लिए अपनी नई कोड साइनिंग आईडी का उपयोग करने के लिए स्पष्ट रूप से सेट करना पड़ा, मेरी समस्या ठीक हो गई। यह सिर्फ आपकी प्रोविज़निंग प्रोफाइल नहीं है, उन कोड साइनिंग आइडेंटिटीज़ की भी जाँच करें। इन भयानक टर्मिनल कमांड के बिना इसे हल नहीं किया जा सकता था!
स्व .नाम

6
बस रिकॉर्ड के लिए: काम करने के लिए पुश नोटिफिकेशन के लिए, किसी को ऐप के बंडल आईडी के साथ एक विशिष्ट प्रोविज़निंग प्रोफाइल का उपयोग करना होगा , न कि एक * वाइल्डकार्ड के साथ।
मर्गिसिसा जूल

37

वर्तमान प्रोविजनिंग प्रोफाइल के कारण समस्या में APNS जानकारी नहीं है, क्योंकि प्रोविजनिंग प्रोफाइल को APNS प्रमाणपत्र बनाने से पहले बनाया गया है।

इसलिए, समस्या को हल करने के लिए, एक नया प्रावधान प्रोफ़ाइल बनाएं और Xcode में प्रावधान प्रोफ़ाइल का चयन करें त्रुटि को साफ़ कर देगा।


यह मेरे लिए काम नहीं किया। कोई अन्य संकेत। कृपया इसे देखें: stackoverflow.com/questions/25679750/…
Ajeet

29

मेरे पास एक ही समस्या थी जब पुश सूचनाएं पहले से ही मेरे डिवाइस पर काम कर रही थीं। लगता है जैसे Xcode कुछ गलत तरीके से कैश किया गया है इसलिए इसे ताज़ा करने से मेरी समस्या ठीक हो गई:

  1. Xcode -> प्राथमिकताएं -> लेखा
  2. अपने डेवलपर खाते का विवरण देखें
  3. बस कुछ समय के लिए प्रोविजन प्रोफाइल के लिए रिफ्रेश पर क्लिक करें। मैं इन परिवर्तनों को प्रत्येक ताज़ा के साथ देख रहा था। जब तक वे बदलना बंद न करें, तब तक तरोताजा रहें।

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

अब कोई रीफ्रेश बटन (?) नहीं है
गेरी

9

मुझे यह त्रुटि मिली और नई प्रावधान प्रोफ़ाइल नहीं बनाई गई; एक नया बनाया और फिर xCode को पुनरारंभ करना पड़ा लेकिन अब काम करता है!


9

ध्यान रखें कि बंडल पहचानकर्ता को केस-संवेदी तरीके से प्रोविजनिंग प्रोफ़ाइल से मेल खाना चाहिए । मेरे पास कुछ था जैसे com.FirstLast.appname जब यह com.firstlast.appname होना चाहिए था। खैर, इसने मुझे काफी समय तक व्यस्त रखा।


मुझे भी यही समस्या थी, इसने मेरे लिए इसे ठीक कर दिया।
कुबा

9

मैंने पुश नोटिफिकेशन क्षमता को सक्षम करके इस समस्या को ठीक किया।

प्रोजेक्ट> लक्ष्य> क्षमताओं> पुश सूचनाओं को चालू करें चुनें

छवि देखें


3

यदि Xcode 8 में अपग्रेड करने के बाद यह समस्या अचानक हुई, तो आपको क्षमताओं स्क्रीन में एक चेतावनी मिल सकती है जो आपको यह स्वचालित रूप से ठीक करने की अनुमति देगी:

प्रोजेक्ट> लक्ष्य> क्षमताओं> पुश सूचनाओं को चालू करें चुनें


यही मुझे सिरदर्द से बचाता है। धन्यवाद!
jpaljasma

2

उत्पाद-> क्लीन ने मेरे लिए किया। उम्मीद है कि यह किसी और के लिए करता है।


मैं दोनों सफाई करता हूं कमांड-ऑप्शन-शिफ्ट-के के जरिए सेकेंडरी क्लीन भी मददगार है।
आकर्षित किया ..

2

मैं संभवतः गैर-लगातार उपयोग के मामले में इसमें भाग गया। मैं Xcode 6 और iOS 8 के साथ काम कर रहा हूं। मैं पूरी तरह से नए ऐप प्रोजेक्ट्स की एक श्रृंखला बना रहा था, और एक ही बंडल आईडी का फिर से उपयोग करने का प्रयास कर रहा था, ताकि फिर से पोर्टल-साइड सेटअप के सभी के माध्यम से जाने की आवश्यकता न हो। यह भी सिर्फ सैंडबॉक्स परीक्षण के लिए था।

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

मेरा समाधान यह था:

  1. डिवाइस से संबद्ध प्रोविज़निंग प्रोफ़ाइल निकालें।
  2. संबंधित प्रावधान प्रोफ़ाइल को Xcode से निकालें।
  3. Xcode बंद करें
  4. मेरे डाउनलोड पर डबल-क्लिक करें .mobileprovisionXcode में वापस इंस्टॉल करने के लिए फ़ाइल पर
  5. परियोजना खोलें और इसे तैनात करें।

यह तरीका पहले की स्थिति के अनुसार थोड़ा ढीला लगता है, और मैं नए ऐप / उसी बंडल आईडी के साथ पीएन के लिए पंजीकरण करने में सक्षम हूं।


2

जिन लोगों को ios 10 में यह त्रुटि मिली, आप निम्नलिखित चरणों का प्रयास कर सकते हैं:

1. अपने प्रोजेक्ट को साफ करें।
2.और चेक लक्ष्य -> ​​क्षमताएं -> पुश अधिसूचना। यदि यह बंद है, तो इस पर।

और समस्या हल हो जाएगी। उपरोक्त कदम मुझे इस समस्या से छुटकारा पाने में मदद करते हैं। आशा है कि यह किसी के लिए उपयोगी होगा।


0

नई प्रोविजनिंग प्रोफाइल ने मेरे लिए काम किया। यदि आप विकास में हैं तो एक डेवलपर प्रोफ़ाइल का उपयोग करना सुनिश्चित करें (Ad Hoc का उपयोग न करें)। इसके बाद ठीक था, पता नहीं क्यों पुराने ने सही काम करना बंद कर दिया।

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