Saya memiliki masalah yang sama: panggilan registerForRemoteNotificationTypes:
tidak dipanggil application:didRegisterForRemoteNotificationsWithDeviceToken:
maupunapplication:didFailToRegisterForRemoteNotificationsWithError:
Saya akhirnya menyelesaikan masalah ini dengan bantuan catatan teknis Apple TN2265 .
Inilah yang saya lakukan:
Pertama, saya memeriksa ulang bahwa saya memang mendaftar dengan benar untuk Push Notifications , termasuk memverifikasi profil penyediaan saya untuk kunci "aps-environment" dan penandatanganan kode dari file .app itu sendiri. Saya sudah menyiapkan semuanya dengan benar.
Saya kemudian harus men-debug pesan status Pemberitahuan Push di konsol (Anda perlu menginstal profil penyediaan PersistentConnectionLogging.mobileconfig di perangkat Anda dan mem-boot ulangnya . Lihat TN2265 di bawah "Mengamati Pesan Status Push"). Saya perhatikan bahwa proses apns memulai pengatur waktu dan menghitung tanggal kebakaran minimum, yang membuat saya curiga bahwa pesan konfirmasi pendaftaran Push-Notification, yang biasanya disajikan pada saat ini, ditekan oleh APNS, seperti yang ditunjukkan di TN2265:
Mengatur Ulang Pemberitahuan Izin Pemberitahuan Push di iOS
Pertama kali aplikasi yang mendukung push mendaftar untuk pemberitahuan push, iOS menanyakan pengguna apakah mereka ingin menerima pemberitahuan untuk aplikasi itu. Setelah pengguna menanggapi, lansiran ini tidak akan ditampilkan lagi kecuali perangkat dipulihkan atau aplikasi telah dicopot setidaknya selama satu hari.
Jika Anda ingin menyimulasikan aplikasi yang dijalankan untuk pertama kali, Anda dapat membiarkan aplikasi tersebut di-uninstal selama sehari. Anda dapat mencapai yang terakhir tanpa benar-benar menunggu satu hari dengan mengatur jam sistem maju satu hari atau lebih, mematikan perangkat sepenuhnya, kemudian menghidupkan kembali perangkat.
Jadi, saya menghapus aplikasi dari perangkat, lalu secara manual mengubah tanggal iPhone di Pengaturan, memulai ulang perangkat, dan menginstal ulang aplikasi.
Kali berikutnya kode saya dipanggil registerForRemoteNotificationTypes
, ia menerima panggilan balik seperti yang diharapkan.
Ini menyelesaikan masalah saya. Semoga membantu.