我已经阅读了有关此问题的几篇文章,例如Delete keychain items when an app is uninstallediOS 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/

10-12 00:27
查看更多