从iOS6更新到iOS7时,identifierForVendor会发生变化

目前我们正在使用iOS6引入的identifierForVendor。 现在iOS7发布了,我想知道这个标识符在更新过程之后是否和我的应用保持一致。

如果我用iOS7恢复我的设备,那么它显然会改变,因为这将是一个新的开始。

如何通过iTunes / OTA更新?

我也用一个小应用程序testing了这种行为,只显示identifierForVendor ,并且在从iOS6更新到iOS7之前/之后保持不变。

还有一点重要的是, identifierForVendor与苹果开发者账户没有关系,而是与应用程序的包标识符相关。

因此,如果您有2个开发者帐户,并且您使用捆绑标识com.company.xxx在每个应用上创build了1个应用,那么它们将拥有相同的identifierForVendor com.company.以拥有com.company. 共同。

它将根据UIDevice类别参考中提到的条件进行更改。

更新后, advertisingIdentifier标识符确实可能会更改。 没有testing,但。

我已经做了一些testing(请参阅苹果的'advertisingIdentifier'重置条件是什么? ),似乎是的,当更新到iOS 7时, identifierForVendor确实发生了变化。

至less这就是我更新的iPhone 4S和iPad mini(前者是iTunes,iPad是空中的)。

但是,我不知道是否所有的用户/设备和应用程序/供应configuration文件的情况。

更新

苹果公司写道 ,这可能解释为什么标识符为我改变,但没有为Kilian:

通过Xcode(而不是App Store)安装的多个企业应用程序或应用程序中的[[[UIDevice currentDevice] identifierForVendor] UUIDString](其中bundleID仅在最后一个组件中不同)将导致相同的string。 如果bundleID具有3个或更less的组件,则这种行为在iOS 6中不变。

这是由于iOS 6和iOS 7之间的行为发生了变化,其中 – [UIDevice identifierForVendor]在没有供应商ID的情况下将bundleID考虑在内。 供应商ID仅分配给App Store上的应用程序。

当您删除应用程序并重新安装时,标识符供应商也会更改!

讨论在iOS设备上安装应用程序(或来自同一供应商的另一个应用程序)时,此属性中的值保持不变。 当用户从设备上删除所有供应商的应用程序并随后重新安装其中的一个或多个应用程序时,值会更改。 当使用Xcode安装testing版本时,或者在使用ad-hoc分发的设备上安装应用程序时,该值也可以。 因此,如果您的应用程序在任何位置存储此属性的值,则应优雅地处理标识符更改的情况。

仅供参考!

是的,供应商ID将改变! (至less如果你是从iOS6更新到iOS7)

苹果的伟大想法,以消除mac地址…这是更大的…谁有责任这个应该得到荣誉勋章