每次重新安装应用程序时,供应商的标识符都会更改。

10 浏览
0 Comments

每次重新安装应用程序时,供应商的标识符都会更改。

我创建了一个用于获取UUID的函数。

func deviceUUID() -> String {

return UIDevice.currentDevice().identifierForVendor?.UUIDString ?? ""

}

但问题是,每当我从同一设备卸载应用并重新安装时,我都会得到一个全新的UUIDString。如果这是默认行为,那么我是否能以某种方式获取之前的UUID?因为我们的服务器将UUID作为用户ID。

我在脑海中有一个解决方案,但我不知道它是否可行,请指导我。

假设我第一次获取ID并将其保存在钥匙串中。当用户重新安装应用时,我从钥匙串中获取ID。这种做法可行吗?

0
0 Comments

问题原因:每次重新安装应用程序时,Vendor标识符会发生更改,这是根据UIDevice文档中描述的正确行为。

解决方法:如果您想要在应用程序被卸载时仍保留某个标识符,您应该在钥匙串中保存一个唯一值。但请注意,即使这些值也不会被100%保留,用户可以删除它们,如果他/她了解钥匙串或设备被擦除。

您可以使用苹果提供的API来生成唯一的token,方法是generateToken(completionHandler:)。请注意,用于生成token的应用程序必须与您的开发者帐户关联,否则生成请求将失败。

0