【发布时间】:2015-09-02 02:12:26
【问题描述】:
identifierForVendor 不应该在重新安装应用时更改:
此属性中的值在应用程序(或其他 来自同一供应商的应用程序)安装在 iOS 设备上。价值 当用户从 设备并随后重新安装其中一个或多个。值可以 使用 Xcode 安装测试版本或安装时也会更改 使用 ad-hoc 分发的设备上的应用程序。因此,如果您的应用 将此属性的值存储在任何地方,您应该优雅地 处理标识符发生变化的情况。
https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor
但是,我刚刚在应用商店中使用我们的一款实时应用对此进行了测试。即使我们的许多其他应用程序仍然安装在设备上,如果我重新安装应用程序 A,从 identifierForVendor 返回的 UUID 每次都会更改。
不是这样的。
这曾经有效。但在某些时候,UUID 似乎已经开始在“简单重新安装”时发生变化(如上所述)。这是一个已知的错误?与上面的文档相比,identifierForVendor 是否已知被破坏?任何解决方法(除了将 UUID 保存到钥匙串,因为该方法会破坏 iCloud 同步)?
【问题讨论】:
-
在 KeyChain 中保留 identifierForVendor 或自定义 UUID。见:How to preserve identifierForVendor in ios after uninstalling ios app on device?
-
让我引用自己的话“除了将 UUID 保存到钥匙串之外,因为该方法会因 iCloud 同步而中断”。好吧,这种方法在某些情况下可能会奏效。这意味着它不适用于所有种情况。
-
您可以制作特定于设备的钥匙串条目(注意:我从 WWDC 视频中回忆了这一点,然后去寻找资源 - 我不需要自己明确测试)。 andyibanez.com/using-ios-keychain 和 developer.apple.com/library/ios/documentation/Security/…
-
我想我之前没见过这个,但是如果你使用推送通知,也许你可以使用设备令牌作为一种 UUID。只是一个想法。
-
你好@Jonny 已经 3 年 4 个月了,我仍然遇到同样的问题。苹果有没有修复它?
标签: ios uuid uniqueidentifier