- (void)removePreferences
{
NSArray* classCollection = [NSArray arrayWithObjects:
(__bridge id)kSecClassInternetPassword,
(__bridge id)kSecClassGenericPassword,
(__bridge id)kSecClassCertificate,
(__bridge id)kSecClassKey,
(__bridge id)kSecClassIdentity, nil];
for (int n = 0; n < classCollection.count; n++)
{
NSMutableDictionary* query = [NSMutableDictionary dictionaryWithObjectsAndKeys:
(__bridge id)kSecMatchLimitAll,(__bridge id)kSecMatchLimit,
(__bridge id)kCFBooleanTrue, (__bridge id)kSecReturnAttributes,
classCollection[n], (__bridge id)kSecClass, nil];
CFTypeRef result = NULL;
if (SecItemCopyMatching((__bridge CFDictionaryRef)query, &result) == errSecSuccess)
{
NSArray *itemCollection = (__bridge NSArray *)result;
for (int i = 0; i < itemCollection.count; i++)
{
NSDictionary *item = (NSDictionary *)itemCollection[i];
NSDictionary *data = [item mutableCopy];
[data setValue:classCollection[n] forKey:(__bridge id)kSecClass];
OSStatus status = SecItemDelete((CFDictionaryRef)data);
NSLog(@"DEL => %@ success:%@ %d", item, status == errSecSuccess ? @"true" : @"false", (int)status);
}
}
}
NSURL *folder = [[[[NSFileManager defaultManager] URLsForDirectory:NSLibraryDirectory inDomains:NSUserDomainMask] firstObject] URLByAppendingPathComponent:@"Preferences"];
for (NSURL *item in [[NSFileManager defaultManager] contentsOfDirectoryAtURL:folder includingPropertiesForKeys:nil options:NSDirectoryEnumerationSkipsHiddenFiles error:nil])
{
NSError *error = nil;
[[NSFileManager defaultManager] removeItemAtURL:item error:&error];
NSLog(@"DEL => %@ error:%@", item, error);
}
}
Last active
October 8, 2017 04:45
-
-
Save larryhou/38638f97573b96049eb2c60756751b72 to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment