13 पर APNS डिवाइस टोकन नहीं मिल रहा है


14

मेरे पास APNS डिवाइस टोकन से संबंधित समस्या है। इससे पहले कि मैं Xcode 10.2 और iOS 12.1 का उपयोग कर रहा था। इस समय मैंने डेलिगेट विधि में डिवाइस टोकन प्राप्त किया

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

मैं इस तरह APNS के लिए पंजीकरण कर रहा हूं और यह ठीक काम कर रहा था।

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    center.delegate = self;
    [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
                if(!error){
                    [[UIApplication sharedApplication] registerForRemoteNotifications];
                }
    }];

अब जब मेरे iPhone डिवाइस में iOS 13 इंस्टॉल किया गया है और Xcode 11 का उपयोग करते हुए, प्रतिनिधि विधि didRegisterForRemoteNotificationsWithDeviceToken नहीं कहा जाता है। इस समस्या को समझने में असमर्थ। मैंने इस पर पहले ही शोध कर लिया है, मुझे पता है कि प्रतिनिधि पद्धति से टोकन प्राप्त करने में कुछ बदलाव हैं लेकिन मेरे मामले में प्रतिनिधि पद्धति को भी नहीं बुलाया गया है। फिर से यह iOS 12 के लिए ठीक काम कर रहा है।


यह अब हल हो गया है। डेवलपर पोर्टल से Xcode 11 के लिए सभी प्रमाण पत्र बनाने थे और इसने काम किया।
IOS देव

@IOSDev आपने क्या किया, कृपया दस्तावेज़ दें। मैं अब उसी चीज में भाग रहा हूं; मुझे लगता है कि यहाँ होने के लिए अच्छा कर्म है।
डैरेन ब्लैक

1
क्या आपको इसके लिए कोई समाधान मिला? मैं एक ही मुद्दे के साथ चल रहा हूँ।
अमन.समाघनी

1
@ Aman.Samagani: हाँ, यह पहली बार नहीं आ रहा है जब पुश सूचना के लिए अलर्ट जनरेट किया गया है। मुझे फिर से पुश नोटिफिकेशन रजिस्टर के उसी कोड को कॉल करना था तब मुझे डिवाइस टोकन मिला। तो दो बार या तीन बार कोशिश में मुझे टोकन मिला।
IOS देव

जवाबों:


14

बस अपने iPhone रिबूट। यह उतना ही सरल है और 90% मामलों में यह आपकी समस्या को हल कर देगा।


1
काश मैं यह टिप्पणी पहले पढ़ता। 5hours ++ को डिबग करने के लिए बर्बाद किया गया था और प्रोफ़ाइल आदि पर पागलपन से घूरना
zuyao88

1
मेरे लिए काम करें, iOS 13.3.1
झोनट्टन

यह एक अजीब बात है, मैंने 3 घंटे बिताए जो पता चला कि क्या गलत है,
फकीहो

2

Https://appleid.apple.com/ पर लॉगऑन करें , फिर url " https://developer.apple.com/account/ios/identifier/bundle " या " https://developer.apple.com/account/resource " खोलें / प्रमाण पत्र / सूची ”।

सबसे पहले, दो नए प्रमाण पत्र बनाएं: (1) Apple विकास आपके iOS, macOS, tvOS और watchOS ऐप के विकास संस्करणों पर हस्ताक्षर करें। Xcode 11 या बाद में उपयोग के लिए। (2) ऐप्पल डिस्ट्रीब्यूशन ऐप स्टोर में या ऐड हॉक डिस्ट्रीब्यूशन के लिए अपने ऐप पर हस्ताक्षर करें। Xcode 11 या उसके बाद के उपयोग के लिए।

फिर मेनू "पहचानकर्ता" को url " https://developer.apple.com/account/resources/identifiers/list " के माध्यम से ढूंढें । अपने एप्लिकेशन के अपने पहचानकर्ताओं को संपादित करें, सुनिश्चित करें कि विकास SSL प्रमाणपत्र और उत्पादन SSL प्रमाणपत्र पुश सूचनाओं में जोड़ा गया है।

अगला, url " https://developer.apple.com/account/resources/profiles/list " के माध्यम से "प्रोफ़ाइल" खोलें । यह सुनिश्चित करें कि वह प्रमाणपत्र जो डिस्ट्रीब्यूशनफोर के प्रकार के रूप में इस्तेमाल किया जाता है जो कि Xcode 11 या देर से होगा, और सेव होगा

अंत में, प्रोविजनिंग प्रोफाइल फाइल और सीए सर्टिफिकेट फाइल को अपने मैक पर डाउनलोड करें, जिसे एक्सकोड और की-चेन एप्लिकेशन में जोड़कर फाइलों को अलग से डबल क्लिक करना होगा।

क्या अधिक है, अपने सेल फोन को रिबूट करना याद रखें, और सुनिश्चित करें कि आपने दूरस्थ सूचना को सही ढंग से सेटअप किया था।


1

मैंने भी उसी समस्या का सामना किया। मैंने कई परिदृश्यों की कोशिश की। नीचे दिए गए चरणों को करने के बाद मुझे सफलता मिली:

  1. पुनः आरंभ किया गया उपकरण
  2. registerForRemoteNotifications मुख्य सूत्र में विधि कहा जाता है ।

मेरे मामले में, मुझे एक उपकरण टोकन मिल रहा था, लेकिन प्रतिक्रिया में देरी हो रही है (मुझे लगता है कि पृष्ठभूमि में दूरस्थ सूचनाएं दर्ज करने के कारण)। लेकिन [[UIApplication sharedApplication] registerForRemoteNotifications]मुख्य धागे में जाने के बाद , सभी ठीक काम करता है।

यहाँ मेरा कोड है:

    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
    UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
    center.delegate = delegate;
    [center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
        if(!error){
            dispatch_async(dispatch_get_main_queue(), ^{
                [[UIApplication sharedApplication] registerForRemoteNotifications];
                [self callCompletion:TRUE completion:completion];
            });
        }
    }];

आशा है कि यह मदद करेगा।


सब पर काम नहीं करता है
व्याचेस्लाव गेर्चिकोव

0

मैं बस नीचे दिए गए चरणों के बाद इस समस्या को हल करता हूं।

DidRegisterForRemoteNotificationsWithDeviceToken विधि में कुछ प्रिंट जोड़ें और उपकरणों को कनेक्ट रखें।

  1. लक्ष्य क्षमताओं के लिए चला गया।
  2. पुश अधिसूचना बंद करें
  3. डिवाइस पर एप्लिकेशन बनाएं और चलाएं और प्रतीक्षा करें।
  4. इसके बाद कंसोल को चेक करें आपको फेल पुश नोटिफिकेशन एरर मैसेज मिला।
  5. ऐप चलाना बंद करें।
  6. पुश अधिसूचना को फिर से चालू करें।
  7. गोटो https://developer.apple.com/ खाता चुनें -> प्रमाण पत्र, पहचानकर्ता और अपनी परियोजना का चयन करें प्रोविजनलप्रोफाइल -> कुंजी -> संपादित करें पर क्लिक करें और उस डाउनलोड प्रोविज़नल प्रोफ़ाइल के बाद सहेजें और उस पर डबल क्लिक करें।
  8. डिवाइस पर एप्लिकेशन बनाएं और चलाएं।
  9. फिर इसका काम ठीक है।

    मुझे उम्मीद है कि यह किसी की मदद करेगा।


-2

यह आपके XCode इंस्टॉलेशन में मौजूद DeviceSupport से संबंधित है, आपके द्वारा उपयोग किए गए डिवाइस के प्लेटफॉर्म वर्जन के लिए।

मेरे मामले में, 13.1 प्लेटफार्म गायब था। हल करने के लिए, बस फ़ोल्डर में DeviceSupports जोड़ें

Xcode.app/Contents/Develper/Platforms/iPhoneOS.platform/DeviceSupport

आप यहां से लापता डिवाइस डाउनलोड कर सकते हैं: https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport


कोई भाग्य @Giuseppe, यहां तक ​​कि 12.4.2 के लिए काम नहीं कर रहा है
IOS देव

यह अब हल हो गया है। Xcode 11 के लिए सभी प्रमाण पत्र बनाने थे और इसने काम किया।
IOS देव

मैंने दोनों प्रमाण पत्र बनाए लेकिन यह अभी भी काम नहीं करता है। मैंने DeviceSupports के लिए भी जाँच की और 13.1 है। मैं iOS 13.1 के साथ iPhone 7 पर xcode 11.1 और परीक्षण का उपयोग कर रहा हूं। कोई सुझाव?
उगो चिरिको

1
मैंने बैकग्राउंड मोड जोड़ा: भ्रूण, प्रोसेसिंग और रिमोट नोटिफिकेशन, मैंने अपने iphone को रिबूट किया और फिर यह काम किया। वास्तव में मुझे समझ में नहीं आता है, लेकिन अब यह काम करता है
Ugo Chirico

सिम्युलेटर के लिए डिवाइस का समर्थन वास्तविक डिवाइस से संबंधित समस्या से कैसे संबंधित है?
व्याचेस्लाव गेरिकोकोव

-2

इसे इस्तेमाल करे।

  1. अपना आवेदन निकालें।
  2. अपने फोन को रिबूट करें।
  3. अपने डिवाइस पर बिल्ड और रन (अपने एप्लिकेशन को पुनर्स्थापित करें) करें।

इसने मेरे लिए काम किया।

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