Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

identifierForVendor changes on reinstall

identifierForVendor is not supposed to change on reinstall of app:

The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.

https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor

However, I've just tested this with one of our live apps on the app store. Even with a number of other of our apps still installed on the device, if I reinstall app A the UUID returned from identifierForVendor changes every time.

It was not like this.

This used to work. But at some point, the UUID seems to have started changing on "simple reinstalls" (as stated above). Is this a known bug? Is identifierForVendor known to be broken versus the documentation above? Any workarounds (other than saving UUID to keychain, because that method breaks with iCloud syncing)?

like image 262
Jonny Avatar asked Jun 17 '15 02:06

Jonny


People also ask

Does identifierForVendor change?

However, it is documented behavior that the identifier changes if conditions are met. Don't assume that identifierForVendor always remains the same. There can always be edge cases where the system incorrectly identifies an update as a reinstall etc.

What is identifierForVendor?

An alphanumeric string that uniquely identifies a device to the app's vendor.


2 Answers

It's a known bug. It seems like Apple made an update to AppStore that causes this new behavior for identifierForVendor around the 28:th May. If you search in the App Developer forum, there are other developers reporting the same problem.

The signature gc from Apple have replied on the issue with the following answer: "Please file bug reports on this at https://developer.apple.com/bug-reporting>. We're aware of this issue and are investigating. There's no known workaround at this time."

like image 97
user5018489 Avatar answered Oct 03 '22 17:10

user5018489


identifierForVendor is expected to change when all vendor's apps are removed from the device. Also, it is bound to change if you're building and installing from Xcode directly.

The value in this property remains the same while the app (or another app from the same vendor) is installed on the iOS device. The value changes when the user deletes all of that vendor’s apps from the device and subsequently reinstalls one or more of them. The value can also change when installing test builds using Xcode or when installing an app on a device using ad-hoc distribution. Therefore, if your app stores the value of this property anywhere, you should gracefully handle situations where the identifier changes.

Source: UIKit/UIDevice/identifierForVendor

like image 40
damirstuhec Avatar answered Oct 03 '22 17:10

damirstuhec