【问题标题】:Firebase Cloud Messaging returning InvalidApnsCredential despite valid P8 APNs Auth Key existing尽管存在有效的 P8 APNs Auth Key,但 Firebase 云消息传递返回 InvalidApnsCredential
【发布时间】: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


【解决方案1】:

InvalidApnsCredential 并不意味着问题与 APNS 证书或密钥直接相关。

我的情况是,我遇到了一个带有白色标签的应用程序的问题,经过调查,我发现我的应用程序包 ID (PRODUCT_BUNDLE_IDENTIFIER) 与 Firebase 中的不匹配(我使用的是开发包 ID,而不是生产包 ID )。

【讨论】:

    【解决方案2】:

    确保您的 Bundle ID 正确。

    如果不一样,创建一个新的 iOS 应用(配置常规添加应用)并确保设置正确命名。

    就我而言,我拥有最短版本的捆绑 ID (com.company),而不是长版本 (com.company.appname)。

    这样做您应该不需要需要重新编译和重新上传应用程序。

    【讨论】:

      猜你喜欢
      • 2020-07-10
      • 2018-12-28
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      相关资源
      最近更新 更多