APN BadDeviceToken iff 运行 开发版本

APN BadDeviceToken iff running dev version

问题

我在处理应用程序时没有收到推送通知,
APN 服务器 returns“BadDeviceToken

情况

我一定是漏掉了一些简单的东西,就是这种情况:

  1. 当我向从 App Store 下载的应用程序发送推送通知时,它起作用了

  2. 当我从同一台服务器向我的应用程序的同一版本 (*) 发送推送通知时,但构建了 Xcode,APN 服务器 returns status: '400' 失败 failed[0].response.reason: 'BadDeviceToken'

(*) 我说的是同一个版本,代码是一样的,插件应该是一样的,但是我把Cordova iOS版本从[=83]降到了3.x =].

技术

我正在使用更新的推送通知方法,我在服务器上只有一个 .p8 APNs 授权密钥。
服务器是使用 node-apn plugin.
的节点代码 客户端应用程序是 Cordova,使用 Telerik Push Plugin.

我试过的

问题

为什么 APN 服务器说 BadDeviceToken 而这显然不是真的?
还有,我该如何解决?

删除应用程序并重新安装(即从 Xcode 重新 运行 它)提供了一个新令牌,并且新令牌没有投诉。

除了@kris的回答:

  • 你可能已经通过 运行 应用程序通过 xCode 解决了它,这将生成一个开发版本,并且需要使用 APNS 开发网关使用开发证书,而不是生产证书。
  • 或者,如果您从 Xcode 直接安装到 phone,那么您必须使用 Development security profile 并确保从服务器端向 [=14] 发送通知=].如果您使用 TestFlight/AppStore,则需要使用 Production 配置文件并确保将通知发送至 iOS production sandbox

然而,SOLUTION 是由提出问题的人发现的,说明:

  • 出于某种原因,Xcode 项目没有使用正确的配置文件,解决方案是 re-install 应用程序。

此外,我想解释一下 APNS_BAD_DEVICE_TOKEN 是什么:

  • 指定的设备令牌错误。确认您指定了一个有效的令牌,并且您的安全配置文件的类型 (development/production) 与您的推送证书的类型匹配。