Очистить брелок для iPhone


Есть ли способ очистить брелок для моего приложения iphone? Либо команда очистки, либо список всех ключей, чтобы я мог удалить их сам.

1 4

1 ответ:

Нет такой вещи, как команда на чистку.
В любом случае, поскольку связка ключей, к которой имеет доступ ваше приложение, предназначена только для вашего приложения, вы можете легко отслеживать то, что вы написали в нем, и удалять его.

Вы можете реализовать свой собственный метод очистки, который просто удалит один за другим все возможные типы данных, которые вы можете сохранить в keychain. Ниже показано, как я очищаю все мои записи 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 .
обратите внимание , что для разных типов данных требуется установить разные флаги словаря.

С уважением