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

Kil*_*fer 3 objective-c ios ios6 ios7

我们目前正在使用identifierForVendoriOS6引入的.现在iOS7发布了,我想知道在更新过程之后这个标识符对于我的应用程序是否保持不变.

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

通过iTunes/OTA更新怎么样?

Kil*_*fer 10

我还用一个只会显示的小应用程序测试了这种行为,identifierForVendor并且在从iOS6更新到iOS7之前/之后保持不变.

同样重要的是,identifierForVendor它与苹果开发者帐户无关,而与应用程序的包标识符无关.

因此,如果您有2个开发人员帐户,并且每个帐户都创建了1个应用程序,那么使用捆绑包标识符com.company.xxx,它们将具有相同identifierForVendorcom.company.共同点.

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

advertisingIdentifier更新后,的确可能发生变化.虽然没有测试.


And*_*Ley 9

我做了一些测试(请参阅Apple的'advertisingIdentifier'重置的条件是什么?),似乎是,identifierForVendor确实在更新到iOS 7时会发生变化.

至少在iPhone 4S和iPad mini上发生的事情我已经更新了(前一个用iTunes,iPad无线).

但是,我不知道所有用户/设备和应用程序/配置文件是否都是这种情况.


更新

Apple 写道,这可能解释了为什么标识符对我来说改变了但对Kilian没有改变:

比较通过Xcode(不是App Store)安装的多个企业应用程序或应用程序上的[[[UIDevice currentDevice] identifierForVendor] UUIDString],其中bundleIDs仅在最后一个组件中不同,将导致相同的字符串.如果bundleID具有3个或更少的组件,则此行为与iOS 6保持不变.

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