我们目前使用identifierForVendor
的是 iOS6 引入的。现在 iOS7 发布了,我想知道这个标识符是否会在更新过程后对我的应用程序保持不变。
如果我用 iOS7 恢复我的设备,那么它显然会改变,因为这将是一个新的开始。
如何通过 iTunes / OTA 进行更新?
我们目前使用identifierForVendor
的是 iOS6 引入的。现在 iOS7 发布了,我想知道这个标识符是否会在更新过程后对我的应用程序保持不变。
如果我用 iOS7 恢复我的设备,那么它显然会改变,因为这将是一个新的开始。
如何通过 iTunes / OTA 进行更新?
我还用一个只会显示的小应用程序测试了这种行为,identifierForVendor
它在从 iOS6 更新到 iOS7 之前/之后保持不变。
同样重要的是要知道,这identifierForVendor
与苹果开发者帐户无关,而是与应用程序的捆绑标识符有关。
因此,如果您有 2 个开发者帐户,并且您在每个帐户上创建 1 个应用程序,使用捆绑标识符com.company.xxx
,它们将具有相同identifierForVendor
的com.company.
共同点。
它将根据UIDevice 类参考中提到的条件发生变化。
advertisingIdentifier
更新后可能确实会发生变化。虽然没有测试。
我做了一些测试(请参阅在什么情况下 Apple 的 'advertisingIdentifier' 重置?),似乎是的,identifierForVendor
更新到 iOS 7 时确实发生了变化。
至少在我更新的 iPhone 4S 和 iPad mini 上发生了这种情况(前一个带有 iTunes,iPad 无线)。
但是,我不知道是否所有用户/设备和应用程序/配置文件都是这种情况。
更新
Apple写了这个,这可能解释了为什么标识符对我来说改变了,但对 Kilian 没有改变:
在多个企业应用程序或通过 Xcode(不是 App Store)安装的应用程序上比较 [[[UIDevice currentDevice] identifierForVendor] UUIDString],其中 bundleID 仅在最后一个组件中不同,将产生相同的字符串。如果 bundleID 包含 3 个或更少的组件,则此行为与 iOS 6 相同。
这是由于 iOS 6 和 iOS 7 之间的行为发生了变化,其中 -[UIDevice identifierForVendor] 如果没有供应商 ID,则将 bundleID 考虑在内。供应商 ID 仅分配给 App Store 上的应用程序。
当您删除应用程序并重新安装它时,identifierforvendor 也会发生变化!
讨论 当应用程序(或来自同一供应商的另一个应用程序)安装在 iOS 设备上时,此属性中的值保持不变。当用户从设备中删除该供应商的所有应用程序并随后重新安装其中一个或多个应用程序时,该值会发生变化。当使用 Xcode 安装测试版本或使用 ad-hoc 分发在设备上安装应用程序时,该值也可以。因此,如果您的应用程序将此属性的值存储在任何地方,您应该优雅地处理标识符更改的情况。
供参考!
是的,供应商 ID 将更改!(至少如果您从 iOS6 更新到 iOS7)
苹果取出mac地址的好主意……这更厉害……谁对此负责,应该获得荣誉勋章