मैं एक ही मुद्दा था: कॉल registerForRemoteNotificationTypes:
लागू न application:didRegisterForRemoteNotificationsWithDeviceToken:
है और न हीapplication:didFailToRegisterForRemoteNotificationsWithError:
मैंने अंततः Apple के तकनीकी नोट TN2265 की मदद से इस मुद्दे को हल किया ।
यह जो मैंने किया है:
सबसे पहले, मैंने डबल-चेक किया कि मैं वास्तव में पुश नोटिफिकेशन के लिए सही तरीके से पंजीकरण कर रहा हूं , जिसमें "अप्स-एनवायरनमेंट" कुंजी के लिए मेरी प्रोविजनिंग प्रोफाइल को सत्यापित करना और .app फाइल को खुद कोड करना है। मैं यह सब सही ढंग से स्थापित किया था।
फिर मुझे कंसोल में पुश नोटिफिकेशन स्टेटस मैसेज को डीबग करना था (आपको अपने डिवाइस पर PersistentConnectionLogging.mobileconfig प्रोविजनिंग प्रोफाइल इंस्टॉल करना होगा और इसे रिबूट करना होगा। " ऑब्सट्रक्टिंग पुश स्टेटस मैसेज" के तहत TN2265 देखें )। मैंने देखा कि एपन्स प्रक्रिया एक टाइमर शुरू करती है और एक न्यूनतम आग की तारीख की गणना करती है, जिससे मुझे संदेह हुआ कि पुश-अधिसूचना पंजीकरण पुष्टि संदेश, जिसे सामान्य रूप से इस बिंदु पर प्रस्तुत किया गया है, APNS द्वारा प्रभावित है, जैसा कि TN2265 में संकेत दिया गया है:
IOS पर पुश नोटिफिकेशन अनुमतियाँ अलर्ट को रीसेट करना
पुश सूचनाओं के लिए पहली बार एक पुश-सक्षम ऐप पंजीकृत होता है, iOS उपयोगकर्ता से पूछता है कि क्या वे उस ऐप के लिए सूचनाएं प्राप्त करना चाहते हैं। एक बार जब उपयोगकर्ता ने इस अलर्ट पर प्रतिक्रिया दी है तो इसे फिर से प्रस्तुत नहीं किया जाता है जब तक कि डिवाइस को बहाल नहीं किया जाता है या ऐप को कम से कम एक दिन के लिए अनइंस्टॉल किया गया है।
यदि आप अपने ऐप के पहली बार चलने का अनुकरण करना चाहते हैं, तो आप ऐप को एक दिन के लिए अनइंस्टॉल कर सकते हैं। आप डिवाइस को पूरी तरह से बंद करके, फिर डिवाइस को चालू करके एक दिन या उससे अधिक समय तक सिस्टम क्लॉक सेट करके वास्तव में एक दिन इंतजार किए बिना बाद को प्राप्त कर सकते हैं।
इसलिए, मैंने डिवाइस से ऐप को हटा दिया, फिर सेटिंग्स में iPhone की तारीख को मैन्युअल रूप से बदल दिया, डिवाइस को रिबूट किया, और ऐप को फिर से इंस्टॉल किया।
अगली बार जब मेरे कोड ने कॉल किया registerForRemoteNotificationTypes
, तो उसे उम्मीद के मुताबिक कॉलबैक मिले।
इससे मेरे लिए समस्या हल हो गई। आशा करता हूँ की ये काम करेगा।