ios 7设备令牌对于同一设备是不同的

Par*_*gon 16 apple-push-notifications devicetoken ios ios7

我在一台设备上有两个应用程序.对于iOS 7,两个应用程序都发送不同的设备令牌,但对于iOS 6,这两个应用程序都发送相同的设备令牌.

根据我的理解,设备令牌必须与一个设备中的所有应用程序相同.iOS7与iOS 6有什么不同吗?

Tom*_* C. 21

更新:

我想我读的这个有点太快了.请注意我的修订.如果答案符合您的使用案例,请随时接受.

根据您的描述,我建议iOS6和iOS7之间的令牌生成有潜在的变化.为了更仔细地检查这种行为,我建议您查看本地和推送通知编程指南.在"计划,注册和处理通知"部分的"指南"中,可以从Apple找到此声明.

设备令牌可以更改.您的应用程序需要在每次启动iOS时通过调用UIApplication的registerForRemoteNotificationTypes:方法重新注册,并在OS X中通过调用NSApplication的registerForRemoteNotificationTypes:方法重新注册.传递给此方法的参数指定应用程序希望接收的初始通知类型.用户可以使用iOS中的"设置"或OS X中的"系统偏好设置"随时修改已启用的通知类型.您可以使用UIApplication的enabledRemoteNotificationTypes属性或NSApplication的enabledRemoteNotificationTypes属性查询当前启用的通知类型.如果未对您的应用启用任何这些通知类型,系统不会标记图标,显示警报消息或播放警报声音,

参考:

当用户同意从Apple推送服务接收远程通知时,Apple会使用设备令牌.

通常,使用以下方法访问设备令牌:

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
Run Code Online (Sandbox Code Playgroud)

deviceToken 用于向APS标识设备的令牌.令牌是不透明的数据类型,因为这是提供者在向设备发送通知时需要提交给APS服务器的表单.出于性能原因,APS服务器需要二进制格式.

请注意,设备令牌与UIDevice的uniqueIdentifier属性不同,因为出于安全和隐私原因,它必须在擦除设备时更改.

Apple推送通知服务中使用的设备令牌

UIDevice Identifier也有重大变化(Apple限制使用).我建议如下:


Par*_*gon 15

这个也很有帮助.请参阅本文第1点:https: //support.urbanairship.com/customer/portal/articles/1321513-how-ios-7-handles-push-differently

"在iOS 7之前,设备令牌在给定设备上的所有应用程序安装中都是相同的.手机上的不同应用程序,无论是Tap Tap Revenge还是USA Today,都将使用相同的地址(即设备令牌)来路由推送通知你.你与消息配对的安全凭证将确保它成为合适的应用程序.在iOS 7上,Apple更进了一步,确保每个应用程序安装中的设备令牌现在都不同.这有助于通过删除另一个电话级标识符进一步保护用户的隐私."

  • 实际上那篇文章回答了这个问题,所以这个答案应该是公认的答案.也许您应该将文章的要点复制到这个答案,因为这里不鼓励仅链接答案. (3认同)