我正在尝试使用Firebase云消息传递向iOS设备发送通知- Firebase控制台中的每个iOS项目都有一个有效的APNs P8认证密钥,这是为此目的从苹果开发者账户新生成的。
我正在使用以下方法:
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文档建议在包含“通知”块时,当令牌是IOS设备时,FCM尝试通过APNs发送:
如果针对iOS设备提供了通知有效载荷或将content_available选项设置为true,则该消息将通过APNs发送,否则将通过FCM连接服务器发送。
我的尝试:
- 刷新令牌
- 等待24小时,以便令牌在APNs和FCM服务器环境中传播
- 使用P12证书
- 使用P8证书
- 确保IOS应用程序在Xcode中允许通知
- 确保Apple开发人员帐户将应用程序设置为允许通知
- 确保plist,FCM和苹果帐户中的Bundle Ids正确
- 尝试FCM旧版密钥和服务器密钥