Saya memiliki masalah terkait token perangkat APNS. Sebelumnya saya menggunakan Xcode 10.2 dan iOS 12.1. Saat ini saya menggunakan token perangkat dalam metode delegate
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
Saya mendaftar untuk APNS seperti ini dan itu berfungsi dengan baik.
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
center.delegate = self;
[center requestAuthorizationWithOptions:(UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionBadge) completionHandler:^(BOOL granted, NSError * _Nullable error){
if(!error){
[[UIApplication sharedApplication] registerForRemoteNotifications];
}
}];
Sekarang ketika menginstal iOS 13 ke perangkat iPhone saya dan menggunakan Xcode 11, metode delegasi didRegisterForRemoteNotificationsWithDeviceToken tidak dipanggil. Tidak dapat memahami masalah ini. Saya sudah melakukan penelitian tentang ini, saya tahu ada beberapa perubahan dalam mendapatkan token dari metode delegate tetapi dalam metode case delegate saya bahkan tidak dipanggil. Sekali lagi ini berfungsi dengan baik untuk iOS 12.
apple-push-notifications
ios13
xcode11
IOS Dev
sumber
sumber
Jawaban:
Nyalakan ulang iPhone Anda. Ini sesederhana itu dan dalam 90% kasus itu akan menyelesaikan masalah Anda.
sumber
Masuk di https://appleid.apple.com/ , lalu buka url " https://developer.apple.com/account/ios/identifier/bundle " atau " https://developer.apple.com/account/resources / sertifikat / daftar ".
Pertama, Buat dua Sertifikat Baru: (1) Apple Development Sign versi pengembangan iOS, macOS, tvOS, dan aplikasi watchOS Anda. Untuk digunakan dalam Xcode 11 atau lebih baru. (2) Distribusi Apple Tanda tangani aplikasi Anda untuk diajukan ke App Store atau untuk distribusi Ad Hoc. Untuk digunakan dengan Xcode 11 atau lebih baru.
Kemudian cari menu "Identifiers" via url " https://developer.apple.com/account/resources/identifiers/list ". Edit Pengidentifikasi aplikasi Anda, pastikan Pengembangan Sertifikat SSL & Produksi Sertifikat SSL ditambahkan ke Pemberitahuan Push.
Selanjutnya, buka menu "Profil" melalui url " https://developer.apple.com/account/resources/profiles/list ". Pastikan bahwa Sertifikat sebagai jenis DistributionFor yang akan digunakan dalam Xcode 11 atau yang lebih baru, dan simpan
Terakhir, unduh file Provisioning Profile dan file CA Certificates yang dibuat untuk MAC Anda, yang akan ditambahkan ke XCode dan aplikasi gantungan kunci dengan mengklik dua kali file secara terpisah.
Terlebih lagi, ingatlah untuk me-reboot ponsel Anda, dan pastikan Anda telah mengatur notifikasi jarak jauh dengan benar.
sumber
Saya juga menghadapi masalah yang sama. Saya mencoba banyak skenario. Saya mendapatkan kesuksesan setelah melakukan langkah-langkah di bawah ini:
registerForRemoteNotifications
metode di utas utama.Dalam kasus saya, saya mendapatkan token perangkat, tetapi ada penundaan dalam respons (saya pikir karena mendaftarkan pemberitahuan jarak jauh di utas latar belakang). Tetapi setelah bergerak
[[UIApplication sharedApplication] registerForRemoteNotifications]
di utas utama, semua berfungsi dengan baik.Ini kode saya:
Semoga ini bisa membantu.
sumber
Saya baru saja menyelesaikan masalah ini dengan mengikuti langkah-langkah di bawah ini.
Tambahkan beberapa cetak dalam metode didRegisterForRemoteNotificationsWithDeviceToken dan tetap terhubung dengan perangkat.
Maka itu bekerja dengan baik.
Saya harap ini membantu seseorang.
sumber
Ini terkait dengan DeviceSupport yang hilang dalam instalasi XCode Anda, untuk versi platform yang digunakan oleh perangkat deploy Anda.
Dalam kasus saya, platform 13.1 hilang. Untuk mengatasinya, tambahkan saja DeviceSupports dalam folder
Anda dapat mengunduh DeviceSupport yang hilang dari: https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport
sumber
Coba ini.
Ini berhasil untuk saya.
sumber