identifierForVendor重新安装时更改

时间:2015-06-17 02:44:31

标签: ios uuid uniqueidentifier

identifierForVendor 应该在重新安装应用时更改:

  

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

https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor

但是,我刚刚在应用商店中使用我们的一个实时应用对此进行了测试。即使设备上仍然安装了许多其他应用程序,如果我重新安装应用程序A,则每次都会从identifierForVendor返回的UUID发生更改。

不是这样的。

这曾经工作过。但在某些时候,UUID似乎已经开始改变"简单的重新安装" (如上所述)。这是一个已知的错误?已知identifierForVendor与上述文档相比已被破坏吗?任何解决方法(除了将UUID保存到钥匙串,因为该方法会因iCloud同步而中断)?

3 个答案:

答案 0 :(得分:8)

这是一个已知的错误。似乎Apple对AppStore进行了更新,导致在5月28日左右为identifierForVendor引发这种新行为。如果您在App Developer论坛中搜索,则有其他开发人员报告相同的问题。

Apple的签名gc已就此问题回答了以下答案: "请在https://developer.apple.com/bug-reporting>处提交有关此问题的错误报告。我们已经意识到这个问题正在调查中。目前还没有已知的解决方法。"

答案 1 :(得分:0)

我们即将使用App Group权利重新提交给我们共享的NSUserDefaults。听起来像App Group NSUserDefaults(与keychain-access-group和iCloud键值存储权利不同)在设备上共享,但不在iCloud帐户上共享。如果共享" deviceid" NSUserDefault密钥不存在,我们将保存IdentifierForVendor ID,然后在保存后将其用于我们的所有应用。

答案 2 :(得分:0)

从设备中删除所有供应商的应用程序后,

identifierForVendor可能会发生变化。另外,如果您是直接从Xcode进行构建和安装,它肯定会发生变化。

  

在iOS设备上安装了该应用程序(或来自同一供应商的另一个应用程序)时,此属性中的值保持不变。当用户从设备上删除该供应商的所有应用程序,然后重新安装其中一个或多个应用程序时,该值将更改。使用Xcode安装测试版本或使用临时发行版在设备上安装应用程序时,该值也会更改。因此,如果您的应用将此属性的值存储在任何位置,则应妥善处理标识符更改的情况。

来源:UIKit / UIDevice / identifierForVendor

相关问题