2010-05-27 157 views
4

有沒有一種方法可以清除我的iphone應用程序的鑰匙扣?無論是清除命令還是所有鍵的列表,以便我可以自己刪除它們。清除iPhone的鑰匙扣

回答

9

有沒有這樣的事情作爲清除命令。
無論如何,由於您的應用程序有權訪問的鑰匙串僅用於您的應用程序,因此您可以輕鬆跟蹤您寫入的內容並將其刪除。

您可以實現自己的清除方法,它將簡單地刪除可以保存在鑰匙串中的所有可能的數據類型。下面是我如何清除我的所有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]; 
} 

所以你需要做的是調用此方法爲所有可能的kSecClass值。
注意不同的數據類型需要設置不同的字典標誌。

關於