Firebase Cloud Messaging ส่งคืน InvalidApnsCredential แม้ว่าจะมีรหัสรับรองความถูกต้อง P8 APNs ที่ถูกต้องอยู่ก็ตาม

ฉันกำลังพยายามส่งการแจ้งเตือนไปยังอุปกรณ์ IOS โดยใช้ Firebase Cloud Messaging - ทุกโปรเจ็กต์ IOS ใน Firebase Console มีคีย์ APNs P8 Auth ที่ถูกต้อง ซึ่งสร้างขึ้นใหม่จากบัญชีนักพัฒนา Apple เพื่อจุดประสงค์นี้

ฉันใช้แนวทางนี้:

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"
    }
}'

ซึ่งส่งผลให้เกิดข้อผิดพลาดต่อไปนี้จาก FCM:

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

หากฉันลบบล็อก "การแจ้งเตือน" ออกจากข้อความ FCM จะตอบกลับสำเร็จ แต่ไม่ได้รับสิ่งใดบนอุปกรณ์

ฉันสามารถส่งและรับการแจ้งเตือนโดยใช้ข้อความตัวอย่างข้างต้นไปยังอุปกรณ์ Android ได้ดี

เอกสาร FCM แนะนำว่าเมื่อ รวมบล็อก "การแจ้งเตือน" แล้ว FCM พยายามส่งผ่าน APN เมื่อโทเค็นนั้นมีไว้สำหรับอุปกรณ์ IOS:

หากมีการระบุเพย์โหลดการแจ้งเตือน หรือตัวเลือก content_available ถูกตั้งค่าเป็นจริงสำหรับข้อความไปยังอุปกรณ์ iOS ข้อความจะถูกส่งผ่าน APN ไม่เช่นนั้นจะถูกส่งผ่านเซิร์ฟเวอร์การเชื่อมต่อ FCM

สิ่งที่ฉันได้ลอง:

  • กำลังรีเฟรชโทเค็น
  • รอ 24 ชั่วโมงเพื่อให้โทเค็นเผยแพร่ในสภาพแวดล้อม APN และเซิร์ฟเวอร์ FCM
  • โดยใช้ใบรับรอง P12
  • โดยใช้ใบรับรอง P8
  • ตรวจสอบให้แน่ใจว่าแอป IOS อนุญาตการแจ้งเตือนใน Xcode
  • ตรวจสอบให้แน่ใจว่าบัญชี Apple Developer มีแอปที่อนุญาตการแจ้งเตือน
  • ตรวจสอบให้แน่ใจว่า Bundle Ids นั้นถูกต้องในบัญชี plist, FCM และ Apple
  • ลองทั้งคีย์ดั้งเดิมของ FCM และรหัสเซิร์ฟเวอร์

person Moo    schedule 17.12.2018    source แหล่งที่มา
comment
รหัสทีมของคีย์การตรวจสอบสิทธิ์ APN ตรงกับรหัสทีมของแอปหรือไม่   -  person Jen Person    schedule 17.12.2018
comment
@JenPerson ใช่   -  person Moo    schedule 18.12.2018
comment
คุณเคยพบวิธีแก้ปัญหา @Moo หรือไม่? ฉันประสบปัญหาเดียวกันที่นี่   -  person Constantine    schedule 26.07.2019
comment
@Moo คุณทราบหรือไม่ว่าอะไรเป็นสาเหตุของปัญหา ฉันยังติดตามและลองทุกสิ่งที่คุณกล่าวถึงข้างต้นเป็นอย่างมาก ยังคงได้รับข้อผิดพลาดเดียวกัน เพิกถอนและใช้คีย์การตรวจสอบสิทธิ์ใหม่ 3 ครั้ง แต่ไม่ได้ผล   -  person akhurad    schedule 01.08.2019


คำตอบ (1)


InvalidApnsCredential ไม่ได้หมายความว่าปัญหาเกี่ยวข้องโดยตรงกับใบรับรอง APNS หรือคีย์

ในกรณีของฉัน ฉันประสบปัญหานี้กับแอปที่มีป้ายกำกับสีขาว และหลังจากการตรวจสอบ ฉันพบว่ารหัสชุดแอปของฉัน (PRODUCT_BUNDLE_IDENTIFIER) ไม่ตรงกับรหัสใน Firebase (ฉันใช้รหัสชุดการพัฒนาแทนรหัสที่ใช้งานจริง)

person MoOx    schedule 03.06.2021