जवाब के सभी के रूप में अब तक कि आप पहचानकर्ता पता है कि तुम को हटाने के लिए मैं निम्नलिखित समाधान है कि अनुप्रयोग के लिए सभी मौजूदा कुंजी हटाता सबमिट करना चाहते हैं (केवल iOS)
-(void)resetKeychain {
[self deleteAllKeysForSecClass:kSecClassGenericPassword];
[self deleteAllKeysForSecClass:kSecClassInternetPassword];
[self deleteAllKeysForSecClass:kSecClassCertificate];
[self deleteAllKeysForSecClass:kSecClassKey];
[self deleteAllKeysForSecClass:kSecClassIdentity];
}
-(void)deleteAllKeysForSecClass:(CFTypeRef)secClass {
NSMutableDictionary* dict = [NSMutableDictionary dictionary];
[dict setObject:(__bridge id)secClass forKey:(__bridge id)kSecClass];
OSStatus result = SecItemDelete((__bridge CFDictionaryRef) dict);
NSAssert(result == noErr || result == errSecItemNotFound, @"Error deleting keychain data (%ld)", result);
}
चाहते पर निर्भर करता है
स्विफ्ट 2.2 संस्करण:
func resetKeychain() {
self.deleteAllKeysForSecClass(kSecClassGenericPassword)
self.deleteAllKeysForSecClass(kSecClassInternetPassword)
self.deleteAllKeysForSecClass(kSecClassCertificate)
self.deleteAllKeysForSecClass(kSecClassKey)
self.deleteAllKeysForSecClass(kSecClassIdentity)
}
func deleteAllKeysForSecClass(secClass: CFTypeRef) {
let dict: [NSString : AnyObject] = [kSecClass : secClass]
let result = SecItemDelete(dict)
assert(result == noErr || result == errSecItemNotFound, "Error deleting keychain data (\(result))")
}
स्विफ्ट 3 संस्करण
func resetKeychain() {
deleteAllKeysForSecClass(kSecClassGenericPassword)
deleteAllKeysForSecClass(kSecClassInternetPassword)
deleteAllKeysForSecClass(kSecClassCertificate)
deleteAllKeysForSecClass(kSecClassKey)
deleteAllKeysForSecClass(kSecClassIdentity)
}
func deleteAllKeysForSecClass(_ secClass: CFTypeRef) {
let dict: [NSString : Any] = [kSecClass : secClass]
let result = SecItemDelete(dict as CFDictionary)
assert(result == noErr || result == errSecItemNotFound, "Error deleting keychain data (\(result))")
}
@ सेर्ज-के, उस प्रश्न को 2012 में पूछा गया था, जबकि यह 2011 में था। –
सच है, बस यहां पाया गया अन्य उत्तर http://stackoverflow.com/questions/14086085/how-to-delete-all -किचैन-आइटम-सुलभ-टू-ए-ऐप एक अधिक अद्यतित समाधान है। मैं इसे सिर्फ एक लिंक के रूप में छोड़ सकता हूं, मैंने डुप्लिकेट ध्वज हटा दिया। –