我已经阅读了有关此问题的几篇文章,例如Delete keychain items when an app is uninstalled和iOS autodelete Keychain items after uninstall?。他们说,当您卸载应用程序时,不会删除其Keychain
,但是帖子可能已被弃用,这是当前行为吗?
另一方面,如果用户卸载应用程序时Keychain
并未真正被自动删除,则我不清楚您自己执行该操作的方式。
编辑:如果在卸载应用程序时未删除Keychain
,那么所有这些剩余的Keychain
实际发生了什么?系统不处理吗?
最佳答案
尝试使用UserDefaults存储一个布尔值,该布尔值跟踪何时将数据保存到钥匙串。
例:
func someFunctionThatSavesToKeychain {
// Save to keychain
UserDefaults.standard.set(true, forKey: "isSavedToKeychain")
// Do other stuff
}
然后在AppDelegate中的didFinishLaunchingWithOptionsMethod
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if !UserDefaults.standard.bool(forKey: "isSavedToKeychain") {
// Delete data from Keychain
}
}
由于UserDefaults在应用程序卸载时被清除,因此下次用户安装该应用程序时,该键值将消失,因此在启动时,您的AppDelegate将删除残留的Keychain数据。
我也进行了广泛的搜索,这种解决方法是您可以获得的最接近的方法。
关于ios - 卸载iOS应用时删除钥匙串(keychain),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41099718/