I have been reading several posts regarding this issue, for example Delete keychain items when an app is uninstalled and iOS autodelete Keychain items after uninstall?. They say that, when you uninstall an app, its Keychain is not deleted, but the posts may be deprecated, is that the current behaviour?
On the other hand, if Keychain is not really automatically deleted when the user uninstalls an app, I'm not clear about the way to do that yourself.
EDIT: If Keychain are not deleted when apps are uninstalled, what actually happens to all those residual Keychain? Does the system not handle that?
Try using UserDefaults to store a boolean that tracks when data is saved to the keychain.
Example:
func someFunctionThatSavesToKeychain {
// Save to keychain
UserDefaults.standard.set(true, forKey: "isSavedToKeychain")
// Do other stuff
}
Then in AppDelegate in the didFinishLaunchingWithOptionsMethod
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if !UserDefaults.standard.bool(forKey: "isSavedToKeychain") {
// Delete data from Keychain
}
}
Since UserDefaults is cleared on application uninstall, the next time the user installs the application, that key-value will be gone therefore on start up, your AppDelegate will delete the residual Keychain data.
I've searched far and wide as well, this workaround is the closest you can get.
There is no trigger to perform code when the app is deleted from the device. Access to the keychain is dependent on the provisioning profile that is used to sign the application. Therefore no other applications would be able to access this information in the keychain.
I don't think you need to delete it. I'm not sure how to delete it but I believe if you did set the keychain value to some certain then you can also assign the value of nil or just empty string "". But this is not quite sure, just assuming.
Hope it helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With