调试中的 identifierForVendor 行为

Posted

技术标签:

【中文标题】调试中的 identifierForVendor 行为【英文标题】:identifierForVendor behavior in debug 【发布时间】:2013-08-26 21:41:47 【问题描述】:

在 Apple 的 documentation for [[UIDevice currentDevice] identifierForVendor] 中,他们声明:

对于来自同一供应商并在同一设备上运行的应用,此属性的值是相同的。

我认为这意味着,如果我在一台设备上安装了多个应用程序,那么这些应用程序中的任何一个应用程序都应该在重新安装应用程序时获得相同的此属性值。但我在调试中没有看到这一点。我有一台设备,上面有两个不同的应用程序。我记下其中一个应用程序中的值,将其删除,然后重新安装,并记下不同的值。这可能是因为我正在调试,还是因为发生了其他事情?任何人都可以确认这个 API 是否按照它所说的那样做?我至少在这里找到了one other post 的问题。

【问题讨论】:

【参考方案1】:

在同一文档中进一步说明:

当用户从设备中删除该供应商的所有应用并随后重新安装其中一个或多个时,该值会发生变化。因此,如果您的应用将此属性的值存储在任何地方,您应该优雅地处理标识符发生变化的情况。

据我了解,您安装和应用程序,将其删除并重新安装,因此在短时间内删除了所有应用程序,这会导致下次安装时出现新的标识符。

【讨论】:

但我的设备上有不止一个应用程序。所以我永远不会进入设备上没有我的应用程序的状态。因此它应该保持不变,不是吗? 你在测试什么ios版本?今天,经过长时间的测试,我得出的结论是 identifierForVendor 对于 6.1.3 之前的所有版本都不稳定。安装最新的 iOS 版本,你应该没问题。

以上是关于调试中的 identifierForVendor 行为的主要内容,如果未能解决你的问题,请参考以下文章

identifierForVendor 是不是会在应用更新时发生变化?

`UIDevice` 上的“identifierForVendor”在 iCloud 备份恢复之间是不是保持不变?

使用 identifierForVendor 加密文件是不是合适?

Mac App Store App 和 identifierForVendor

[UIDevice currentDevice].identifierForVendor 的替代品

iOS identifierForVendor 是不是可以复制?