Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can the identifierForVendor change when updating an App?

Tags:

iphone

ios6

The identifierForVendor is not supposed to change unless all apps by the vendor are removed from the device. What happens if I have a single application that is updated. Can the identifierForVendor change? Another way of formulating this question is: Is an app upgrade the same as an uninstall and install (at least in some sense)?

The reason I ask is that if I install the current version of an app from the App Store, and then "Archive" a new version via XCode and install it over iTunes the identifierForVendor changes. I don't know if this is a special case or if this is also the case with a "normal" App update/upgrade.

like image 677
Omar Kohl Avatar asked Feb 13 '13 15:02

Omar Kohl


2 Answers

Short answer - In the described case the identifierForVendor will be different.

But for users downloading from AppStore, it will be the same. IF the version is 6.1 and up. There are known issues with 6.0.x.

I have verified this with Apple Support and by submitting my own application update to AppStore.

like image 52
Dima Gutzeit Avatar answered Oct 26 '22 23:10

Dima Gutzeit


It is not supposed to change when updating the app from app store as is described in the documentation.

If you are updating an itunes-installed app, then updating it using Xcode or an ipa based on ad hoc provisioning or any provisioning, you will get a different value. You need to make it consistent, Adhoc to adhoc, dev to dev, app store to app store.

Again update from app store is not supposed to change. HOWEVER. Be cautioned about this. There was a bug affecting the calculation of identifierForVendor that occured between May and July of 2015. If you are relying on this value in any of your encryption schemes, chances are you may not be able to decrypt it. Apple has claimed to have rectified the issue and now pushing another update should restore the original value as it was before the critical period.

In any case, you should gracefully handle when identifierForValue changes during updates.

like image 43
chalcopyrite Avatar answered Oct 26 '22 21:10

chalcopyrite