清除iPhone钥匙扣

ACB*_*urk 4 iphone keychain

有没有办法可以清除我的iPhone应用程序的钥匙串?清除命令或所有键列表,以便我自己删除它们.

pmi*_*sev 9

没有purge命令这样的东西.
无论如何,由于您的应用程序可以访问的密钥链专用于您的应用程序,因此您可以轻松地跟踪您在其中写入的内容并将其删除.

您可以实现自己的清除方法,只需逐个删除可以保存在钥匙串中的所有可能的数据类型.以下是我清除所有GenericPassword条目的方法:

- (BOOL)deleteKeychainData
{
    /* delete custom data */
    NSMutableDictionary *searchData = [NSMutableDictionary new];
    [searchData setObject:(id)kSecClassGenericPassword forKey:(id)kSecClass];
    [searchData setObject:kTagKeychainService forKey:(id)kSecAttrService];

    OSStatus statusData = SecItemDelete((CFDictionaryRef)searchData);
    [searchData release];

    CHECK_CONDITION1(statusData == errSecSuccess
                     || statusData == errSecItemNotFound,
                     @"Error while deleting keychain data, OSStatus == %d", statusData);

    /* delete assymetric keys*/
    return [self deleteKeyPair];
}
Run Code Online (Sandbox Code Playgroud)

所以你需要做的就是为所有可能的kSecClass值调用这个方法.
请注意,不同的数据类型需要设置不同的字典标志.

问候