在某些情况下,UUID 会发生变化吗?

14

我正在使用用户设备的UUID来获取唯一的设备。

NSString  *currentUUIDString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

我知道如果应用程序被删除/重新安装,UUID会更改(苹果文档)。

但是以下情况会导致UUID更改吗?

  1. 如果应用程序已更新。(在相同的问题中找到
  2. 如果设备的操作系统版本已升级。
  3. 如果进行备份和还原。
  4. 如果设备已重置。(在这种情况下,我认为UUIDKeychain存储将无法工作。我想Keychain存储也被清除了。)

编辑:

不,这不是重复问题,那个问题涉及如何唯一地识别设备,我已经遵循了。我知道我们可以使用UUID来唯一标识设备。但是我的问题是UUID可能会在哪些情况下更改,如果更改,则可能发生什么情况。


1
1、2、4没有变化,但是第3个数字发生了改变。请在这里检查我的答案。 - mgyky
可能是重复的问题:如何唯一标识iOS设备而不使用UUID和UDID - mgyky
为什么不试一下,看看会发生什么?更新应用程序或从iTunes恢复与重新安装相同。如果您指的是设备被重置,即恢复出厂设置,那么是的。如果您的意思是关闭然后再打开设备,则是否定的。但在这种情况下,最好的方法就是自己测试。 - Tim
@Jeff 感谢您的评论。我已经尽我所能去做了。但是像iTunes/iCloud备份/恢复、操作系统升级或恢复出厂设置等情况是无法由我来完成的。如果有人已经完成了这些操作,那么继续进行将会更容易。 - Kirti Nikam
恢复出厂设置保证更改供应商 ID,因为之后需要重新安装应用程序。 - Tim
显示剩余2条评论
2个回答

4

是的

设备的identifierForVendor是识别设备的绝佳方式。如果应用程序(以及来自同一开发者的所有应用程序)从设备中删除并重新安装,则会更改它。它不依赖于wifi /蓝牙连接。除去去年的一个错误,它不会随着操作系统的更改而更改。......您还可以将自己的UUID写入钥匙串-这样可以在应用程序被删除/重新安装后保留下来......您还可以将某些内容写入用户的iCloud键值文件。这将是特定于用户而不是特定于设备的。 它也可以在应用程序被删除/重新安装后保留下来。 我想这就是你想要的。


0

除非您删除并重新安装应用程序,否则它不会更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接