gpt4 book ai didi

删除并重新安装应用后,iOS 钥匙串(keychain)数据会保留吗?

转载 作者:行者123 更新时间:2023-12-03 20:10:13 24 4
gpt4 key购买 nike

如您所知,Apple 禁止在 iOS 设备中获取唯一 ID。但有时我们需要识别设备,例如,当应用程序首次安装时只有一次用户时获得奖励。我们不想在一台设备上签署(赚取奖金)多个用户。
因此,我们从设备中获取了 vendorID 并将这些数据保存在钥匙串(keychain)上(vendorID 会随时间更改,但我们不想更改 ID)。之后,我们检查此数据在钥匙串(keychain)上是否可用。我读了这个帖子[iOS autodelete Keychain items after uninstall][1],相关的钥匙串(keychain)数据将在应用程序删除后被删除。
但是当我尝试这种情况时。我的钥匙串(keychain)数据不会删除,并且钥匙串(keychain)数据在删除后仍然存在。
所以我的问题是从这一点提出的。有人知道这个问题吗?删除我的应用程序后,钥匙串(keychain)数据将被保留或删除所有钥匙串(keychain)数据。
卸载后钥匙串(keychain)数据会被删除吗?
看看我的钥匙串(keychain)数据保存功能。

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
}
请不要提供其他解决方案。我们陷入了这种情况。我们要确定删除应用程序钥匙串(keychain)后是否会被删除
[1]: https://forums.developer.apple.com/thread/36442

答案:
钥匙串(keychain)数据现在始终存在。

最佳答案

钥匙串(keychain)数据现在始终存在。

钥匙串(keychain)值的自动删除是在 10.3 的 beta 版本中,但出于某种原因,他们消除了这种可能性。我想很多应用程序都习惯了不可丢弃的钥匙串(keychain)。

检查此question .

有一个 super 简单的方法槽UserDefaults :

func clearKeychainIfWillUnistall() {
let freshInstall = !UserDefaults.standard.bool(forKey: "alreadyInstalled")
if freshInstall {
KeychainKeeper.shared.clear()
UserDefaults.standard.set(true, forKey: "alreadyInstalled")
}
}

调用 AppDelegate
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
self.clearKeychainIfWillUnistall()
}

我知道的最简单的解决方法。我希望它会有所帮助。

关于删除并重新安装应用后,iOS 钥匙串(keychain)数据会保留吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60485419/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com