Does UUID getting changed for some cases

Kirti Nikam picture Kirti Nikam · Jun 29, 2015 · Viewed 9.7k times · Source

I am using user's device UUID to get unique device.

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

I know that UUID getting changed if the app gets deleted/reinstalls (Apple document).

But Does UUID getting changed for following cases?

  1. If app has been updated. (Found same question)
  2. If the device OS version has been upgraded.
  3. If do iCloud/iTunes backup and restore.
  4. If the device has been reset. (In this case, I think UUID Keychain storage will not work. Keychain storage also getting cleared I guess.)

Edit:

No, This is not duplicate, that question is related to how to identify the device uniquely and I have already followed. I know that we can use UUID to identify device uniquely. But my concern is what are the frequencies that UUID might get changed and if changed then what are the scenarios in which it can be changed.

Answer

Jogendar Choudhary picture Jogendar Choudhary · Apr 16, 2018

Yes

The device's identifierForVendor is an excellent way of identifying the device. It will change if the app (and all apps from the same developer) is removed from the device and reinstalled. It does not depend on wifi/Bluetooth connections. With the exception of a bug last year, it does not change with operating systems. ...... You could also write your own UUID to the keychain - that survives delete/reinstall of the app...You could also write something to the user's iCloud key-value file. That would be user-specific rather than device-specific. It also survives delete/reinstall. I think that is what you want.