设置新的独立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个测试:
这次使用相同的Bundle Identifier在iOS中创建了一个新应用,该应用使用pushToken并发送一条消息,说明该服务成功
创建了一个新的应用程序,另一个watchOS,并使用了不同的Bundle标识符,但再次被拒绝,但是同一DeviceTokenNotForTopic
问题的APN。
要测试生产,当前的唯一方法是提交给商店以供App Store审核。 Watch目前不提供TestFlight选项,并且无法手动安装生产临时.ipa
。进入商店后,我将继续进行进一步的测试。
答案 0 :(得分:4)
问题已解决。
Xcode存在两个问题,如果您依靠Xcode在开发人员门户中对证书进行分类,那么请不要。
我一直在与支持部门联系,几天后来回记录日志后,我意识到:
topic
(捆绑包ID)应以 .watchkitapp 结尾< / li>
我遇到的问题的解决方案是手动转到开发人员门户并添加 .watchkitapp AppId并创建证书,从而允许服务器上的我的p8证书允许推送到那个特定的应用程序。
答案 1 :(得分:-1)
我使用基于令牌的身份验证来发送 apns 通知。
最后发现忘记把apns-topic
header 的值改成watch appid.(form com.xxx to com.xxx.watchkitapp).
希望这个回答可以帮助到其他人。