繁体   English   中英

证书有效时 InvalidApnsCredential

[英]InvalidApnsCredential while certificates are valid

我正在尝试向我的推送通知测试应用程序发送消息。 几周前,它一直在对同一个应用程序进行概念验证,但现在不再进行了。

我失败了:InvalidApnsCredential 和 Firebase 告诉我们: “无法发送针对 iOS 设备的消息,因为所需的 APNs SSL 证书未上传或已过期。检查您的开发和生产证书的有效性”

但是当我检查我的 firebase 控制台时,它告诉我开发和生产证书的有效期还有 9 个月。

还有什么可能导致此消息?

如果其他人也面临这个问题,这里有一些提示:

  1. 每当您遇到通知问题时,请尝试通过 Firebase 提供的 GUI 控制台发送推送以发送通知

  2. 如果您在 Appstore 上的实时应用没有收到推送通知,而是仅在通过 Xcode 运行时收到通知,那么您还没有将生产证书上传到 Firebase 控制台

  3. 如果您已上传生产和开发证书,但仍未收到通知,请下载最新证书并再次上传到 firebase 控制台

在 Firebase 中添加团队 ID 对我有用。

Firebase 控制台 -> 常规 -> 选择您的应用 -> 添加团队 ID

您可以在 Apple 开发者门户中找到团队 ID:

https://developer.apple.com/account/#/membership

在上传 .p8 文件(APNs 身份验证密钥)的情况下,添加正确的密钥 ID 对我有用。

当您从 Apple 下载 .p8 文件时。 文件名的格式为 AuthKey_XXXXXXXXXX.p8。 10 位数字(AuthKey_ 后标记为 XXXXXXXXXX)是您需要添加的 Key ID。 请参考图片

我遇到了这个问题,即使我的 APNs 令牌是最新的等等,我也一直在努力寻找解决方案。我在 IOS 之前在 android 上以及在https://iid.googleapis.com/iid "application": com.android name POST 方法上进行测试"application": com.android name而不是 IOS 捆绑 ID。 只是我这边的一个愚蠢的错误。

这可能会让您感到痛苦,但 Firebase 云消息传递系统似乎不喜欢 bundleID 中的破折号。 我有一些类似 my.app.bundle-y 的东西,我在邮递员那里收到了 InvalidAPNSCredential 消息......我最终尝试将我的包 ID 更改为 my.app.bundle,但其他一切都失败了,并且通知开始通过。

这是非常严重的变化,只有在应用程序尚未部署时才真正合理。

如果所有其他方法都失败了并且您的包 ID 中有一个破折号,那么也许可以试一试。

在我的情况下,我上传了带有错误密钥 ID 的.p8 密钥,双重检查您的“APNs 身份验证密钥”并确保您拥有具有正确密钥 ID 和团队 ID 的正确文件

Xcode“Bundle Identifier”必须与 Firebase 中配置的一致。

在 Firebase 中:项目设置 > 您的应用程序 > Apple 应用程序

在 Xcode 中:您的项目 > 目标 > 常规选项卡 > 捆绑包标识符

就我而言,Apn.p8 文件已从 Firebase 控制台中删除(我不知道为什么::|)
我之前有过,直接上传,问题就解决了。 但如果你没有它,你可以从
Apple developer account -> Certificates -> Keys -> Add new key并从服务中检查Apple Push Notifications service (APNs) ,然后下载并上传
Firebase -> App setting -> Cloud Messaging -> Apple app configuration -> APNs Authentication Key

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM