我正在尝试使用Firebase Cloud Messaging将通知发送到IOS设备-Firebase控制台中的每个IOS项目都有一个有效的APNs P8身份验证密钥,为此,它是从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"
}
]
}
如果我从消息中删除“ notification”块,则FCM会成功响应,但是设备上什么都没有收到。
我可以使用上面的示例消息来发送和接收通知, Android设备就可以了。
FCM documentation建议,当包含“通知”块时,当令牌用于IOS设备时,FCM尝试通过APN发送:
如果提供了通知有效负载,或者将消息的content_available选项设置为true,则消息将通过APN发送,否则将通过FCM连接服务器发送。
我尝试过的事情:
答案 0 :(得分:0)
InvalidApnsCredential
并不意味着问题与 APNS 证书或密钥直接相关。
我的情况是,我遇到了一个白色标签应用程序的问题,经过调查,我发现我的应用程序包 ID (PRODUCT_BUNDLE_IDENTIFIER) 与 Firebase 中的不匹配(我使用的是开发包 ID 而不是生产包 ID ).