Ios 在升级操作系统时,设备令牌是否会发生变化?

Ios 在升级操作系统时,设备令牌是否会发生变化?,ios,iphone,push-notification,device,token,Ios,Iphone,Push Notification,Device,Token,我对设备令牌更新有疑问。如果我们升级操作系统,例如从iOS 6升级到iOS 7,应用程序的设备令牌将更新或保持不变 我浏览了苹果的文档,但没有找到任何关于操作系统升级的具体答案。根据我的知识和其他人对相同问题的回答,我有以下信息 通过请求设备令牌并将其每年传递给提供商 应用程序启动时,您可以帮助确保提供程序 具有设备的当前令牌。如果用户将备份恢复到 为其创建备份的设备以外的设备 例如,用户将数据迁移到新设备,他或她必须 至少启动应用程序一次,以接收通知 再一次如果用户将备份数据恢复到新设备或重新

我对设备令牌更新有疑问。如果我们升级操作系统,例如从iOS 6升级到iOS 7,应用程序的设备令牌将更新或保持不变

我浏览了苹果的文档,但没有找到任何关于操作系统升级的具体答案。根据我的知识和其他人对相同问题的回答,我有以下信息

通过请求设备令牌并将其每年传递给提供商 应用程序启动时,您可以帮助确保提供程序 具有设备的当前令牌。如果用户将备份恢复到 为其创建备份的设备以外的设备 例如,用户将数据迁移到新设备,他或她必须 至少启动应用程序一次,以接收通知 再一次如果用户将备份数据恢复到新设备或重新安装 操作系统、设备令牌发生更改。此外,永远不要缓存 设备令牌,并将其交给提供商;一定要拿到代币 无论何时需要,都可以从系统中获取。如果您的应用程序 以前已注册,正在调用registerForRemoteNotificationTypes: 导致iOS立即将设备令牌传递给代理 而不会产生额外的开销

这个问题背后的意图是,我想使用设备令牌作为唯一ID,比如UDID。与iOS 6之后一样,getting UDID方法被拒绝,UDID没有其他选择

我知道identifierForVendor,但它是特定于应用程序的&如果我们删除应用程序,它会改变。我想从iPhone上获得一个独一无二的ID,这个ID永远不会改变,但我找不到苹果允许的任何存储方法,比如IMEI nubmer等


简言之,我们可以使用任何唯一的ID或号码,它永远不会改变,我们可以将它用于我们的应用程序,而苹果不会拒绝它?

关于您的第一个问题,因为我知道,升级操作系统时,设备令牌不会改变。但我没有参考链接。 对于第二个问题,您可以使用以下方法在iOS 6或更高版本中获取UUID:

+ (NSString *)GetUUID
{
    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return [(NSString *)string autorelease];
} 
我建议改用[[[UIDevice currentDevice]identifierForVendor]UUIString]。