ios - 卸载应用程序时删除钥匙串(keychain)项目

标签 ios objective-c keychain

我正在使用idandersen's scifihifi-iphone钥匙串(keychain)代码并使用保存密码

[SFHFKeychainUtils storeUsername:@"User" andPassword:@"123"
              forServiceName:@"TestService" updateExisting:YES error:&error];

当我从设备中删除应用程序时,密码仍保留在钥匙串(keychain)中。

当用户从设备中删除应用程序时,我想从钥匙串(keychain)中删除密码。我怎样才能做到这一点?

最佳答案

您可以利用通过卸载应用程序来清除 NSUserDefaults 的事实。例如:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //Clear keychain on first run in case of reinstallation
    if (![[NSUserDefaults standardUserDefaults] objectForKey:@"FirstRun"]) {
        // Delete values from keychain here
        [[NSUserDefaults standardUserDefaults] setValue:@"1strun" forKey:@"FirstRun"];
        [[NSUserDefaults standardUserDefaults] synchronize];
    }

    //...Other stuff that usually happens in didFinishLaunching
}

这会在应用首次运行时在 NSUserDefaults 中检查并设置“FirstRun”键/值(如果尚未设置)。有一条注释,您应该在其中添加代码以从钥匙串(keychain)中删除值。可以调用 Synchronize 以确保“FirstRun”键/值立即保留,以防用户在系统保留应用程序之前手动终止应用程序。

关于ios - 卸载应用程序时删除钥匙串(keychain)项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37625064/

相关文章:

android - 在 flutter 测试中比较两个 PinCode 文本字段

iphone - 如何在不产生新线程的情况下在iPhone上显示MBProgressHUD?

iphone - 如何调整CIImage的大小?

ios - 使用钥匙串(keychain)存储高分和加电

ios - 快速将文本字段添加到 UITableViewCell

ios - 在 Swift 中实现 PopOver

iphone - 10 分钟无交互后自动退出我的应用程序

iphone - 当我的应用程序处于后台时,只有当我触摸顶部通知横幅并且在我单击应用程序图标时不工作时才会处理推送通知

macos - 我的钥匙串(keychain)中的 "ghconduit.com"证书有什么用?

linux - keychain ssh-agent 信息不正确