【发布时间】:2019-05-18 06:25:44
【问题描述】:
我正在尝试使用 Firebase Cloud Messaging 向 IOS 设备发送通知 - Firebase 控制台中的每个 IOS 项目都有一个有效的 APNs P8 Auth Key,它是为此目的从 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 documentation 建议当包含“通知”块时,当令牌用于 IOS 设备时,FCM 会尝试通过 APNs 发送:
如果提供了通知负载,或者将消息的 content_available 选项设置为 true,则消息将通过 APNs 发送,否则将通过 FCM 连接服务器发送。
我尝试过的:
- 刷新令牌
- 等待 24 小时,让令牌在 APN 和 FCM 服务器环境中传播
- 使用 P12 证书
- 使用 P8 证书
- 确保 IOS 应用允许 Xcode 中的通知
- 确保 Apple Developer 帐户允许应用通知
- 确保 plist、FCM 和 Apple 帐户中的 Bundle Id 正确
- 尝试了 FCM 旧密钥和服务器密钥
【问题讨论】:
-
APNs Authentication key 的 Team ID 是否与应用的 Team ID 匹配?
-
@JenPerson 是的。
-
你有没有找到解决方案@Moo?我在这里遇到了同样的问题。
-
@Moo 你找到问题的原因了吗?我也非常关注并尝试了您上面提到的所有内容。仍然得到同样的错误。撤销并使用了 3 次新的 Auth 密钥,但没有成功。
-
同样的问题@Moo,你找到解决办法了吗?
标签: ios firebase firebase-cloud-messaging