小编典典

卸载应用程序时删除钥匙串项目

all

我正在使用idandersen 的 scifihifi-
iphone
代码作为钥匙串并使用保存密码

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

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

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


阅读 130

收藏
2022-05-20

共1个答案

小编典典

您可以利用通过卸载应用程序清除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”键/值。有一条注释,您应该在其中放置代码以从钥匙串中删除值。可以调用
Synchronize 以确保立即保留“FirstRun”键/值,以防用户在系统保留应用程序之前手动终止应用程序。

2022-05-20