应用程序 UUID 随 iOS 中的应用程序更新而变化

Posted

技术标签:

【中文标题】应用程序 UUID 随 iOS 中的应用程序更新而变化【英文标题】:Application UUID changes with app update in iOS 【发布时间】:2017-12-26 14:12:34 【问题描述】:

我将下载文件的路径存储在 sqlite db 中,当我更新应用程序时,它的 UUID 会发生变化,但数据不会移动到新容器中。所以路径现在基本上是无效的。我使用 iExplorer 检查了文件是否仍然存在,它们确实存在。

platform.Is("ios")
this.localdirectory = this.file.dataDirectory+filename;

else

this.localdirectory = this.file.externalDataDirectory+filename;

【问题讨论】:

【参考方案1】:

存储需要在应用安装之间持久保存的 UUID 的更好方法是使用钥匙串。

钥匙串不仅会在更新之间持续存在 - 还会在应用安装之间持续存在。事实上 - 您甚至可以完全删除该应用程序,它仍然存在。 只有从头开始完全设置设备实际上会给你一个新的价值。

有一个问题(取决于您如何构建 Keychain 域)不同的 Provisioning Profiles 可能会获得一个新的 Keychain(但旧的仍然存在)。

我确实建议使用开源软件来管理钥匙串本身。真是……怎么说呢……与很多现代代码和约定不同。 另请注意 - 如果您想跨设备共享,您甚至可以使用 iCloud 钥匙串,并使用 Appgroups 在同一部手机上的应用程序之间共享。

【讨论】:

以上是关于应用程序 UUID 随 iOS 中的应用程序更新而变化的主要内容,如果未能解决你的问题,请参考以下文章

iOS 获取设备唯一标示符的方法

如何唯一识别iOS设备而不是使用UUID和UDID [重复]

T-sql 中的记录顺序随统计信息更新而变化

iOS App 中的 IDFA,而不是 UDID

iOS 7-iBeacon:当应用程序关闭时,如何从 iBeacon 获取比其 UUID 更多的数据?

ios堆栈溢出中的uuid,udid和设备令牌有啥区别