我对设备令牌更新有疑问。如果我们升级操作系统,例如从iOS 6升级到iOS 7,应用程序的设备令牌会更新还是与旧版本保持一致?
我浏览了Apple文档,但是我没有找到任何针对OS渐变的具体答案。根据我的知识和形式,其他人回答相同的问题,我有以下信息。
“通过请求设备令牌并将其传递给提供者 您的应用程序启动时,您可以帮助确保提供程序 拥有设备的当前令牌。如果用户将备份还原到 除了为其创建备份的设备之外的设备(用于 例如,用户必须将数据迁移到新设备 至少启动一次应用程序以接收通知 再次。如果用户将备份数据还原到新设备或重新安装 操作系统,设备令牌发生变化。而且,永远不要缓存 设备令牌并将其提供给您的提供商;总是得到令牌 在您需要时从系统中获取。如果你的申请有 以前注册过,调用registerForRemoteNotificationTypes: 导致iOS立即将设备令牌传递给委托 不会产生额外的开销。“
我的问题背后的意图是,我想将设备令牌用作唯一ID,例如UDID。在iOS 6之后,获取UDID方法被拒绝,并且UDID没有替代方法。
我知道identifierForVendor,但它是特定于应用程序的&如果我们删除应用程序,它将会改变。我希望从iPhone中获得一个唯一ID,永远不会改变,但我找不到苹果允许存储的任何方法,如IMEI nubmer等。
总结可以任何ID或数字是唯一的,它永远不会改变,我们可以将它用于我们不能被苹果拒绝的应用程序吗?
答案 0 :(得分:0)
对于您的第一个问题,因为我知道升级操作系统时设备令牌不会改变。但我没有参考链接。 对于第二个问题,您可以使用以下方法在iOS 6或更高版本中获取UUID:
+ (NSString *)GetUUID
{
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
return [(NSString *)string autorelease];
}