如您所知,iOS设备上获取唯一ID是被苹果禁止的。但有时我们需要识别设备,例如,在应用程序首次安装时获得奖励的唯一用户。我们不希望在一个设备上为多个用户签署(赚取奖励)。
因此,我们从设备中获取vendorID并将此数据保存在钥匙串中(vendorID会随时间变化,但我们不希望更改ID)。之后,我们检查此数据是否可在钥匙串中使用。我阅读了这个主题[iOS autodelete Keychain items after uninstall][1],与钥匙串数据相关的数据将在应用程序删除后被删除。
但当我尝试这个场景时。我的钥匙串数据没有删除,并且在删除后钥匙串数据持久存在。
因此,我的问题就从这个点开始。有人了解这个问题吗?在删除我的应用程序后,钥匙串数据会保留还是删除所有钥匙串数据。 卸载后钥匙串数据将删除吗? 查看我的钥匙串数据保存功能。
请不要提供其他解决方案。我们陷入了这种情况。我们想确认在删除应用程序钥匙链后是否会被删除。
[1]: https://forums.developer.apple.com/thread/36442
因此,我们从设备中获取vendorID并将此数据保存在钥匙串中(vendorID会随时间变化,但我们不希望更改ID)。之后,我们检查此数据是否可在钥匙串中使用。我阅读了这个主题[iOS autodelete Keychain items after uninstall][1],与钥匙串数据相关的数据将在应用程序删除后被删除。
但当我尝试这个场景时。我的钥匙串数据没有删除,并且在删除后钥匙串数据持久存在。
因此,我的问题就从这个点开始。有人了解这个问题吗?在删除我的应用程序后,钥匙串数据会保留还是删除所有钥匙串数据。 卸载后钥匙串数据将删除吗? 查看我的钥匙串数据保存功能。
class func getUniqueDeviceID() -> String {
guard let uniqueDeviceId = KeychainKeeper.shared.uniqueDeviceID else {
let deviceId = (UIDevice.current.identifierForVendor?.uuidString)~
KeychainKeeper.shared.uniqueDeviceID = deviceId
return deviceId
}
return uniqueDeviceId
}
请不要提供其他解决方案。我们陷入了这种情况。我们想确认在删除应用程序钥匙链后是否会被删除。
[1]: https://forums.developer.apple.com/thread/36442
答案:
钥匙串数据现在始终保留。