我正在尝试向我的推送通知测试应用程序发送消息。几周前,它一直在同一个应用程序上进行概念验证,但现在不再了。
我遇到失败:InvalidApnsCredential 和 Firebase 告诉我们:"无法发送针对 iOS 设备的消息,因为所需的 APNs SSL 证书未上传或已过期。检查您的开发和生产证书的有效性">
但是当我检查我的 firebase 控制台时,它告诉我开发和生产证书的有效期还有 9 个月。
还有什么可能导致此消息?
如果其他人也面临这个问题,这里有一些提示:
-
每当遇到通知问题时,请尝试通过 Firebase 提供的 GUI 控制台发送推送以发送通知
-
如果您在亚马逊应用商店的上线应用没有收到推送通知,但仅在通过 Xcode 运行时收到通知,则表示您尚未将生产证书上传到 Firebase 控制台
-
如果您已上传生产和开发证书,但仍未收到通知,请下载最新证书,然后再次将其上传到 Firebase 控制台
在Firebase中添加团队ID对我很有用。
Firebase 控制台 -> 常规 ->选择您的应用 -> 添加团队 ID
您可以在 Apple 开发人员门户中找到团队 ID:
https://developer.apple.com/account/#/membership
这可能会让您感到痛苦,但Firebase Cloud Messaging 系统似乎不喜欢捆绑 ID 中的破折号。我有一些关于我的.app.bundle-y的东西,我在邮递员上收到无效的APNSCredential消息......我最终尝试将我的捆绑 ID 更改为 my.app.bundle,当所有其他方法都失败时,通知开始通过。
这是非常严重的变化,只有在尚未部署应用程序的情况下才真正合理。
如果所有其他方法都失败了,并且您的捆绑 ID 中有一个破折号,那么也许可以试一试。
在上传 .p8 文件(APNs 身份验证密钥)的情况下,添加正确的密钥 ID 对我有用。
当您从苹果下载 .p8 文件时。文件名的格式为 AuthKey_XXXXXXXXXX.p8。10 位数字(AuthKey_后标记为 XXXXXXXXXX)是您需要添加的密钥 ID。请参阅图片
我遇到了这个问题,即使我的 APNs 令牌是最新的等等,我也很难找到解决方案。我在 IOS 之前在 android 和 POST 方法上进行测试,以https://iid.googleapis.com/iid
我离开了"application": com.android name
而不是 IOS 捆绑 ID。 只是我这边的一个愚蠢错误。
在我的情况下,我上传的.p8密钥具有错误的密钥ID双重检查您的"APNs身份验证密钥",并确保您拥有具有正确密钥ID的正确文件 和团队 ID
就我而言,Apn .p8 文件已从 Firebase 控制台中删除(我不知道为什么! :| )
我以前有过它,只是上传它,问题就解决了。 但是如果你没有它,你可以从Apple developer account -> Certificates -> Keys -> Add new key
创建一个新的并检查Apple 推送通知服务 (APNs) 从服务中下载并上传到Firebase -> App setting -> Cloud Messaging -> Apple app configuration -> APNs Authentication Key
Xcode "Bundle Identifier" 必须与 Firebase 中配置的标识符匹配。
在 Firebase 中:项目设置>您的应用> Apple 应用
在 Xcode 中:您的项目>"面向"常规"选项卡>"捆绑标识符">
就我而言,我的团队 ID 在Firebase APNs 身份验证密钥中是错误的
我遇到了这个问题,因为我使用了我在
appstoreconnect.apple.com -> 用户和访问 -> keys
上创建的 p8,过了一会儿,我想起这是 API 密钥而不是 APN,并将其替换为我在开发人员门户上创建的新密钥:
apple developers -> 证书、标识符和配置文件 -> keys
它立即起作用.
希望这会帮助那里的人。