【发布时间】:2016-02-17 17:34:53
【问题描述】:
Apple 的文档对设备的 deviceToken 何时可以更改有点含糊。防御性地编写代码并测试代码是值得的。
我已经编写了我的应用程序,以便在启动时注册推送通知并处理 didRegisterForRemoteNotificationsWithDeviceToken 回调。
我的didRegisterForRemoteNotificationsWithDeviceToken 将最后一个设备令牌保存到用户默认值,如果令牌仍然相同,则继续。如果它根本没有保存的令牌,或者令牌不匹配,它会将新令牌上传到我们的服务器。
我还有一种机制可以让我用人类可读的名称命名我的测试设备,例如“4s_1”“5s_1”“5s_2”等。我有一个服务器命令行工具,它采用人类可读的设备名称,看起来从中查找设备的“identifierForVendor”,然后使用标识符查找设备令牌。然后它会触发沙盒通知。
似乎删除应用程序并重新安装它会导致“identifierForVendor”发生变化,但deviceToken 不会发生变化,这与我希望测试发生的情况完全相反。我想要一些永远不会改变的值来唯一地标识测试设备,并改变设备令牌以便我可以测试我的代码。
编辑:自从写这篇文章以来,我已经更改了应用程序以生成它自己的 UUID,并将其保存到钥匙串中,正如 Wain 在他的回答中所建议的那样。
有没有办法强制 Apple 的 APN 更改设备的令牌,以便我可以测试我的代码(客户端和服务器端)以处理令牌更改的情况?
【问题讨论】:
标签: ios push-notification devicetoken