[英]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.