删除 iPhone 后 iOS 推送 token 仍然有效

标签 ios push-notification apple-push-notifications

所以,我在商店里有一个应用程序,我已经将它下载到我的手机上并获得了该设备的推送 token 。我测试了静默推送通知发送,确实有效,我的设备收到了它。

我想检查推送 token 失效后的时间。我做的第一件事就是简单地卸载了一个应用程序,然后开始注意 {"reason":"Unregistered","timestamp:1234567890} 到我的 curl 看起来像这样的请求:

curl -d '{"aps":{"content-available":"1"}}' --cert "/Users/uerceg/Desktop/ProductionCertForMyAppsPush.pem":"password" -H "apns-topic:com.my.app" --http2 https://api.push.apple.com/3/device/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

一旦我从我的设备上卸载了一个应用程序,它通常因情况而异(我猜反馈服务有某种我不太了解的 token 刷新逻辑,无论如何我也没有找到一些关于它的文档),但需要 3-12 分钟才能开始收到我的应用程序已卸载的信息。可爱。

在那之后,我想再测试一个案例 - 选择 Erase All Content and Settings 并完全清除我 iPhone 中的所有内容,之后不恢复任何备份。

一旦我这样做了,应用程序也会被删除。但是 curl 请求总是返回状态 200。我等了 5 天,5 天后,它仍然返回 200,就好像安装了应用程序一样,但我猜它不应该。删除所有内容后,我重新安装了我的应用程序,获得了新的推送 token ,我用它再次成功发送静默推送通知。

当然,如果我有机制来识别这个特定设备新安装了一个应用程序,我可以在后端更新 token ,不再向该设备发送通知,但我的问题仍然存在:为什么是苹果如果我通过删除和重置我的 iPhone 删除了我的应用程序,不会使 token 失效?

也许这是预期的行为,我的问题没有意义,但如果这是预期的行为,你能给我指出一些解释这个问题的文档吗?

提前致谢。

最佳答案

可能出于同样的原因,如果您对手机进行备份并从备份中恢复,现有的按键仍然有效。使正在删除的设备上的 key 失效将消除从备份中使用相同 key 的可能性。

关于删除 iPhone 后 iOS 推送 token 仍然有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42921336/

相关文章:

iphone - 使用对象按字母顺序对 tableview 进行排序并显示按字母顺序排列的 tableview 标题,如通讯录

ios - 在 iOS 的 FCM 推送通知上启用默认声音

android - android中通知图标的颜色

ios - APNS 设备 token 结合登录/注销系统

iOS - 带有内部分发的 APNS

iphone - 推送通知无法在iPhone应用程序的多个设备上传递?

javascript - 更改提交按钮文本并在 iOs 中禁用它

ios - 如何以编程方式删除 plist?

ios - 在 Xcode 中包含 "-ObjC"的原因

ios - iOS 10 的推送通知问题