identifierForVendor - uniqueness

Hello,


My and my team have questions about identifierForVendor property declared in UIDevice class declared in UIKit framework.

We have read the documentation (https://developer.apple.com/documentation/uikit/uidevice/1620059-identifierforvendor) and we are unsure about the returning value.


Is this property returning always the same value unless uninstalling all the apps from one vendor or it can change in some specific circumstances? For example update (normal) app from AppStore by user or system update?

Now we discovered that when app installed from AppStore will be „updated” from TestFlight then ID will be changed. Is there any risk on production version that value of this property will by influent by others factors?



Best Regards,

Team 🙂

Replies

The identifierForVendor should not change unless all the apps of the developer are removed from the device and then reinstalled.


If this is a problem, you can save a value for identifierForVendor in the keychain. The keychain survives deletion and reinstallation.

Thanks for response.

It's not a problem with changing this identifier when uninstalling all the apps, it's ok for us 🙂

We want to be sure if this will not change on system update or normal application update like it is with updating app from AppStore version to TestFlight version.

Updates won't change the identifierForVendor.

Once, I think in going from iOS6 to iOS7, they all changed.

The keychain is your friend.