繁体   English   中英

卸载iOS应用时删除钥匙串

[英]Deleting Keychain when uninstalling iOS app

我已经阅读了有关此问题的几篇文章,例如, 在卸载应用程序时删除钥匙串项以及在卸载后iOS自动 删除钥匙串项 他们说,当您卸载应用程序时,不会删除其“ Keychain ,但帖子可能已被弃用,这是当前行为吗?

另一方面,如果用户卸载应用程序时Keychain并没有真正自动删除,则我不清楚自己的方式。

编辑:如果在卸载应用程序时未删除Keychain ,那么所有这些剩余的Keychain实际上会发生什么? 系统不处理吗?

从设备删除应用程序后,没有触发器可以执行代码。 对钥匙串的访问取决于用于对应用程序进行签名的供应配置文件。 因此,没有其他应用程序能够访问钥匙串中的此信息。

我认为您不需要删除它。 我不确定如何删除它,但是我相信如果您确实将钥匙串的值设置为某个值,那么您还可以分配nil的值或只是空字符串"" 但这并不确定,只是假设而已。

希望能帮助到你!

尝试使用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数据。

我也进行了广泛的搜索,这种解决方法是您可以获得的最接近的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM