Firebase Cloud Messaging mengembalikan InvalidApnsCredential meskipun ada Kunci Auth APN P8 yang valid

Saya mencoba mengirim pemberitahuan ke perangkat iOS menggunakan Firebase Cloud Messaging - setiap proyek IOS di Firebase Console memiliki Kunci Auth P8 APN yang valid, yang baru dibuat dari akun pengembang Apple untuk tujuan ini.

Saya menggunakan pendekatan ini:

curl -X POST \
  https://fcm.googleapis.com/fcm/send \
  -H 'Authorization: key=<My Key>' \
  -H 'Content-Type: application/json' \
  -H 'cache-control: no-cache' \
  -d '{
    "to": "<Device Token>",
    "notification": {
        "title": "Push Notification Test to IOS",
        "body":"Push Notification Test to IOS"
    },
    "data": {
        "message": "Push Notification Test to IOS"
    }
}'

Hal ini menyebabkan kesalahan berikut dari FCM:

{
    "multicast_id": <Id>,
    "success": 0,
    "failure": 1,
    "canonical_ids": 0,
    "results": [
        {
            "error": "InvalidApnsCredential"
        }
    ]
}

Jika saya menghapus blok "pemberitahuan" dari pesan, FCM merespons dengan sukses, namun tidak ada yang diterima di perangkat.

Saya dapat mengirim dan menerima notifikasi menggunakan contoh pesan di atas ke perangkat Android dengan baik.

dokumentasi FCM menyarankan hal tersebut ketika blok "pemberitahuan" disertakan, FCM mencoba mengirim melalui APN ketika token ditujukan untuk perangkat iOS:

Jika payload notifikasi disediakan, atau opsi content_available diatur ke true untuk pesan ke perangkat iOS, pesan akan dikirim melalui APN, jika tidak maka akan dikirim melalui server koneksi FCM.

Apa yang saya coba:

  • Menyegarkan token
  • Menunggu 24 jam hingga token disebarkan di lingkungan server APN dan FCM
  • menggunakan sertifikat P12
  • menggunakan sertifikat P8
  • memastikan aplikasi iOS mengizinkan notifikasi di Xcode
  • memastikan akun Pengembang Apple memiliki aplikasi yang mengizinkan pemberitahuan
  • memastikan Bundle Id di plist, FCM dan akun Apple sudah benar
  • mencoba kunci lama FCM dan kunci server

person Moo    schedule 17.12.2018    source sumber
comment
Apakah ID Tim dari kunci Otentikasi APN cocok dengan ID Tim aplikasi?   -  person Jen Person    schedule 17.12.2018
comment
@JenPerson ya.   -  person Moo    schedule 18.12.2018
comment
Pernahkah Anda menemukan solusi @Moo? Saya mengalami masalah yang sama di sini.   -  person Constantine    schedule 26.07.2019
comment
@Moo Apakah Anda mengetahui apa yang menyebabkan masalah ini? Saya juga cukup banyak mengikuti dan mencoba semua yang Anda sebutkan di atas. Masih mendapatkan kesalahan yang sama. Mencabut dan menggunakan kunci Auth baru sebanyak 3 kali, dan itu tidak berhasil.   -  person akhurad    schedule 01.08.2019


Jawaban (1)


InvalidApnsCredential tidak berarti masalah tersebut terkait langsung dengan sertifikat APNS atau kuncinya.

Dalam kasus saya, saya menghadapi masalah ini dengan aplikasi berlabel putih & setelah penyelidikan, saya menemukan bahwa id bundel aplikasi saya (PRODUK_BUNDLE_IDENTIFIER) tidak cocok dengan yang ada di Firebase (saya menggunakan id bundel pengembangan, bukan id produksi).

person MoOx    schedule 03.06.2021