Tidak mendapatkan token Perangkat APNS di ios 13

14

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.

IOS Dev
sumber
Sudah dipecahkan sekarang. Harus membuat semua sertifikat untuk Xcode 11 dari portal pengembang dan itu berhasil.
IOS Dev
@IOSDev Harap mendokumentasikan apa yang Anda lakukan. Saya mengalami hal yang sama sekarang; ada karma bagus yang bisa didapat di sini saya pikir.
Darren Black
1
Apakah Anda menemukan solusi untuk ini? saya menjalankan dengan masalah yang sama.
Aman.Samghani
1
@ Aman.Samghani: YA, itu tidak datang pertama kali ketika peringatan dihasilkan untuk Pemberitahuan Push. Saya harus lagi memanggil kode register Push Notification yang sama kemudian saya mendapat token perangkat. Jadi dalam dua atau tiga kali coba saya mendapat token.
IOS Dev

Jawaban:

15

Nyalakan ulang iPhone Anda. Ini sesederhana itu dan dalam 90% kasus itu akan menyelesaikan masalah Anda.

Aleksandr Honcharov
sumber
1
Saya harap saya membaca komentar ini sebelumnya. Terbuang 5 jam ++ untuk men-debug dan menatap dengan gila-
gilaan
1
Bekerja untuk saya, iOS 13.3.1
Jhonattan
itu hal yang aneh terjadi, saya menghabiskan 3 jam mencari tahu apa yang salah,
fakiho
2

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.

Dengshan Tian
sumber
1

Saya juga menghadapi masalah yang sama. Saya mencoba banyak skenario. Saya mendapatkan kesuksesan setelah melakukan langkah-langkah di bawah ini:

  1. Perangkat yang dihidupkan ulang
  2. Disebut 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:

    [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];
            });
        }
    }];

Semoga ini bisa membantu.

Kirti Nikam
sumber
tidak bekerja sama sekali
Vyachaslav Gerchicov
0

Saya baru saja menyelesaikan masalah ini dengan mengikuti langkah-langkah di bawah ini.

Tambahkan beberapa cetak dalam metode didRegisterForRemoteNotificationsWithDeviceToken dan tetap terhubung dengan perangkat.

  1. Pergi ke kemampuan target.
  2. Nonaktifkan Notifikasi Push
  3. Bangun & Jalankan aplikasi di perangkat dan tunggu.
  4. Kemudian periksa konsol Anda mendapat pesan kesalahan pemberitahuan push push.
  5. Berhenti menjalankan aplikasi.
  6. Nyalakan lagi Push Notification.
  7. Goto https://developer.apple.com/ Pilih Akun -> Sertifikat, Identifiers & Pilih proyek Anda ProvisionalProfiles -> Keys -> klik edit dan simpan setelah itu unduh profil sementara dan klik dua kali.
  8. Bangun & Jalankan aplikasi di perangkat.
  9. Maka itu bekerja dengan baik.

    Saya harap ini membantu seseorang.

Gangireddy Rami Reddy
sumber
-2

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

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

Anda dapat mengunduh DeviceSupport yang hilang dari: https://github.com/iGhibli/iOS-DeviceSupport/tree/master/DeviceSupport

Giuseppe
sumber
Tidak beruntung @Giuseppe, bahkan tidak bekerja untuk 12.4.2
IOS Dev
Sudah dipecahkan sekarang. Harus membuat semua sertifikat untuk Xcode 11 dan berhasil.
IOS Dev
Saya membuat kedua sertifikat tetapi tetap tidak berhasil. Saya juga memeriksa DeviceSupports dan 13.1 ada di sana. Saya menggunakan xcode 11.1 dan menguji pada iphone 7 dengan iOS 13.1. Ada saran?
Ugo Chirico
1
Saya menambahkan mode latar belakang: mengambil, memproses, dan notifikasi jarak jauh, saya reboot iPhone saya dan kemudian berfungsi. Sungguh saya tidak mengerti mengapa tetapi sekarang berhasil
Ugo Chirico
bagaimana dukungan perangkat untuk simulator milik masalah yang terkait dengan perangkat nyata?
Vyachaslav Gerchicov
-2

Coba ini.

  1. Hapus aplikasi Anda.
  2. Mulai ulang ponsel Anda.
  3. Bangun dan Jalankan (instal ulang aplikasi Anda) di perangkat Anda.

Ini berhasil untuk saya.

kylie kim
sumber