我正在使用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/