首页 > 解决方案 > 当我在 Swift 中从同一部 iPhone 中删除应用程序时,为什么我的唯一设备 ID 会发生变化?

问题描述

我正在使用以下代码获取 iPhone 的当前设备 ID:

 let deviceId: String = (UIDevice.current.identifierForVendor?.uuidString)!

...但是当我从同一部手机中删除应用程序时,它的 ID 正在改变。为什么?

当我在其他设备上安装应用程序时,必须更改设备 ID。

我怎么做?请帮我写代码。

标签: iosswiftiphoneudid

解决方案


这就是苹果设计它的工作方式。从文档中

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


推荐阅读