IOS Firebase 云消息传递“InvalidApnsCredential”
Posted
技术标签:
【中文标题】IOS Firebase 云消息传递“InvalidApnsCredential”【英文标题】:IOS Firebase Cloud Messaging "InvalidApnsCredential" 【发布时间】:2020-07-10 07:12:19 【问题描述】:我正在尝试使用 FCM 向我的 Ionic 应用程序添加推送通知,但遇到了 ios 问题(android 可以按预期工作)。在将此标记为重复之前,我尝试了其他类似问题的解决方案,但没有帮助。
在 Firebase 控制台中,我设置了团队 ID、应用程序 ID,并将苹果生成的 APNS p5 也上传到了我的控制台。
最后,最新的 plist 文件到我的应用程序的根目录。从 xcode 中,我可以看到证书也启用了推送通知,并且应用程序也要求获得该权限。之后,我获得了设备通知 ID,并通过控制台和 api 端点对其进行了测试,但我不断收到“InvalidApnsCredential”错误。我从这里完成了其他几个问题的步骤,但没有运气。我似乎无法让它工作,下面是我的代码的一些 sn-ps
this.platform.ready().then(() =>
this.fcmService.getToken().then(resp=>
this.httpService.sendToken(resp)
.subscribe(res =>
console.log(res)
);
console.log(resp)
);
);
以及 api post 请求的正文
Endpoint: https://fcm.googleapis.com/fcm/send
Body:
"notification":
"title":"Ionic 4 Notification",
"body":"This notification sent from POSTMAN using Firebase HTTP protocol",
"sound":"default",
"click_action":"FCM_PLUGIN_ACTIVITY",
"icon":"fcm_push_icon"
,
"data":
"landing_page":"second",
"price":"$3,000.00"
,
"to":"IOS_DEVICE_NOTIFICATION_ID",
"priority":"high",
"restricted_package_name":""
代码和 api 端点似乎正确,因为它适用于 Android。有什么我想让它工作的吗?
【问题讨论】:
你在 fcmService.getToken() 启动之前是否尝试过获取权限? 所以,我从 firebase 中删除了 IOS 应用程序并重新创建它,它似乎可以正常工作。有点奇怪,但我没有更改任何代码! 神秘但好的部分是它的工作??。 是的,希望这是一次错误并且不会再次中断 【参考方案1】:因此,这可能不是您正在寻找的答案,但对我来说,在我在 ios 上重新创建应用程序后一切正常。 常见问题包括 - 尝试在客户授权之前发送通知 - 使用旧 ID 发送通知(是的,它们有时会更改) - 您的应用程序和 ios 应用程序之间的包名称不匹配
【讨论】:
【参考方案2】:以下是“InvalidApnsCredential”的原因:
-
可能包 ID 已更改 [在代码中查找包 ID 名称不匹配的位置,更改它]
APN 密钥已过期 [在 Firebase 控制台中更新]
通过此链接enter link description here 找出您遇到的确切错误。
【讨论】:
以上是关于IOS Firebase 云消息传递“InvalidApnsCredential”的主要内容,如果未能解决你的问题,请参考以下文章
Flutter - Firebase 云消息传递,iOS 上未收到数据消息
Firebase 云消息传递 - PHP Rest API 不适用于 iOS
无法将iOS CriticalAlert发送到Firebase云消息传递