我们目前使用的是iOS6引入的identifierForVendor
。现在iOS7已经发布,我想知道在更新过程中,这个标识符是否会保持不变。
如果我使用iOS7恢复设备,则显然会更改,因为这将是一个全新的开始。
通过iTunes / OTA进行更新呢?
我们目前使用的是iOS6引入的identifierForVendor
。现在iOS7已经发布,我想知道在更新过程中,这个标识符是否会保持不变。
如果我使用iOS7恢复设备,则显然会更改,因为这将是一个全新的开始。
通过iTunes / OTA进行更新呢?
我还用一个小应用测试了这种行为,它只显示identifierForVendor
。在从iOS6升级到iOS7之前/之后,它仍然保持不变。
另外需要知道的是,identifierForVendor
与苹果开发者帐户无关,而与应用程序的束标识符相关。
如果您有两个开发者帐户,并在每个帐户上创建一个应用程序,使用束标识符com.company.xxx
,它们将具有相同的identifierForVendor
,因为它们有com.company.
的共同点。
它将根据UIDevice Class参考文献中提到的条件进行更改。
advertisingIdentifier
在更新后可能确实会更改。虽然没有测试过。
identifierForVendor
不依赖于帐户类型(App Store或企业),因此它不应该对其产生影响。BundleID有3个组件,例如com.company.myapp
。 - Kilian ScheferidentifierForVendor
不同。看起来我需要做更多的测试... - Andreas Ley我进行了一些测试(请参阅在哪些情况下会重置苹果的“advertisingIdentifier”?),似乎是的,当更新到iOS 7时,identifierForVendor
确实会发生变化。
至少在我升级过的iPhone 4S和iPad mini上出现了这种情况(前者使用iTunes升级,后者通过空中升级)。
然而,我不知道这是否适用于所有用户/设备和应用程序/配置文件。
更新
苹果公司写道,这可能解释了为什么我的标识符更改了但Kilian的标识符没有更改:
比较多个企业应用程序或通过Xcode安装的应用程序(而不是App Store),其中bundleID仅在最后一个组件中不同的[[[UIDevice currentDevice] identifierForVendor] UUIDString]将导致相同的字符串。如果bundleID有3个或更少的组件,则此行为与iOS 6中的行为相同。
这是由于iOS 6和iOS 7之间的行为变化,- [UIDevice identifierForVendor]将考虑bundleID(如果没有供应商ID)。供应商ID仅分配给App Store上的应用程序。
如果您删除应用程序并重新安装它,identifierforvendor也会更改!
讨论 在iOS设备上安装该应用程序(或来自同一供应商的另一个应用程序)时,此属性中的值保持不变。当用户从设备中删除所有该供应商的应用程序并随后重新安装其中一个或多个应用程序时,该值将更改。在使用Xcode安装测试版本或使用特定分发方式在设备上安装应用程序时,该值也可能更改。因此,如果您的应用程序在任何地方存储此属性的值,您应该优雅地处理标识符更改的情况。
仅供参考!
是的,供应商ID将会改变!(至少如果你从iOS6更新到iOS7)
苹果把MAC地址移除真是个好主意......而且这更加伟大......谁负责这个的人应该得到荣誉勋章。