【发布时间】:2017-10-26 22:10:07
【问题描述】:
问题
我在处理应用时没有收到推送通知,
APN 服务器返回“BadDeviceToken”。
情况
我必须在这里遗漏一些简单的东西,情况就是这样:
-
当我向从 App Store 下载的应用发送推送通知时,它可以工作
-
当我从同一服务器向我的应用程序的同一版本 (*) 发送推送通知但构建于 Xcode 时,APN 服务器返回
status: '400'失败并返回failed[0].response.reason: 'BadDeviceToken'
(*) 我说的是同一个版本,代码是一样的,插件应该是一样的,但是我已经把Cordova iOS版本从4.x降到了3.x。
技术
我正在使用更新的推送通知方法,在服务器上我只有一个 .p8 APNs Auth Key。
服务器是使用node-apn plugin的节点代码。
客户端应用是 Cordova,使用 Telerik Push Plugin。
我尝试过的
-
我尝试创建一个新的 APNs 身份验证密钥并将其上传到服务器;这仍然适用于应用程序的 App Store 版本,并且 APN 在发送到我本地构建的应用程序版本时仍然返回“BadDeviceToken”。
-
在将推送发送到本地构建的应用程序之前,我已尝试在服务器配置上为 node-apn 设置
production: false;我仍然收到“BadDeviceToken”错误。 -
按照this question 对令牌进行额外的十六进制编码;结果是它仍然显示“BadDeviceToken”,尽管在这种情况下它实际上是真的。
-
将 cordova-ios 版本升级到 4.3.1;仍然得到“BadDeviceToken”。
-
在构建时仔细检查“推送通知”功能是否开启
问题
为什么 APN 服务器说 BadDeviceToken 显然不是真的?
还有,我该如何解决?
【问题讨论】:
标签: ios node.js cordova apple-push-notifications push