在某些情况下,UUID是否会发生变化

iKT*_*iKT 10 uuid keychain uniqueidentifier ios icloud

我正在使用用户的设备UUID来获取独特的设备.

NSString  *currentUUIDString = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
Run Code Online (Sandbox Code Playgroud)

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

但是UUID对于以下情况会有变化吗?

  1. 如果应用已更新.(发现同样的问题)
  2. 如果设备OS version已升级.
  3. 如果做iCloud/iTunes备份和恢复.
  4. 如果设备已重置.(在这种情况下,我认为UUID Keychain存储将无法正常工作.我想,钥匙串存储也会被清除.)

编辑:

不,这不重复,该问题与如何唯一地识别设备有关,我已经遵循了.我知道我们可以用来UUID唯一地识别设备.但我担心的是UUID可能会发生变化的频率是多少,如果发生变化,那么它可以改变的场景是什么.

Jog*_*ary 4

是的

设备的identifierForVendor 是识别设备的绝佳方法。如果应用程序(以及来自同一开发人员的所有应用程序)从设备中删除并重新安装,它将发生变化。它不依赖于 wifi/蓝牙连接。除了去年的一个错误之外,它不会随操作系统而改变。......您还可以将自己的 UUID 写入钥匙串 - 在删除/重新安装应用程序后仍然存在...您还可以向用户的 iCloud 键值文件写入一些内容。这将是特定于用户的而不是特定于设备的。它也可以在删除/重新安装后继续存在。我想这就是你想要的。