独立WatchOS6应用程序的APNS失败

时间:2019-09-25 08:26:18

标签: node.js swift ios13 watchos-6

设置新的独立WatchOS6应用程序后,该应用程序现在支持推送通知,让设备请求用户发出推送通知并捕获推送令牌。我无法让服务器发送推送通知。

在NodeJS服务器上设置了所有正确的凭据和P8之后,我试图将消息推送到设备上。这一直都是错误:

状态400 -DeviceTokenNotForTopic-根据Apple的文档,这表示Topic(应用的BundleId)错误。但是在这种情况下不是。

尝试了2种不同的NPM软件包(用于淘汰)

https://www.npmjs.com/package/node-pushnotifications

https://www.npmjs.com/package/apn

两者都给我带来了同样的问题。

有人成功管理了带有APN的Independent WatchOS应用吗?我想念什么

———

更新

要测试节点服务,还进行了2个测试:

  1. 这次使用相同的Bundle Identifier在iOS中创建了一个新应用,该应用使用pushToken并发送一条消息,说明该服务成功

  2. 创建了一个新的应用程序,另一个watchOS,并使用了不同的Bundle标识符,但再次被拒绝,但是同一DeviceTokenNotForTopic问题的APN。

要测试生产,当前的唯一方法是提交给商店以供App Store审核。 Watch目前不提供TestFlight选项,并且无法手动安装生产临时.ipa。进入商店后,我将继续进行进一步的测试。

2 个答案:

答案 0 :(得分:4)

问题已解决。

Xcode存在两个问题,如果您依靠Xcode在开发人员门户中对证书进行分类,那么请不要。

我一直在与支持部门联系,几天后来回记录日志后,我意识到:

  1. Apple关于Independent WatchOS应用程序的文档没有在任何地方声明 topic(捆绑包ID)应以 .watchkitapp 结尾< / li>
  2. Xcode不允许您将推送通知功能添加到 .watchkitapp ,因此这意味着它永远不会在开发人员门户中创建AppId。

我遇到的问题的解决方案是手动转到开发人员门户并添加 .watchkitapp AppId并创建证书,从而允许服务器上的我的p8证书允许推送到那个特定的应用程序。

答案 1 :(得分:-1)

我使用基于令牌的身份验证来发送 apns 通知。

最后发现忘记把apns-topic header 的值改成watch appid.(form com.xxx to com.xxx.watchkitapp).

希望这个回答可以帮助到其他人。