iOS: невозможно добавить элемент в связку ключей с помощью KeychainItemWrapper

Во-первых: я знаю, что есть другие вопросы, касающиеся KeychainItemWrapper уже опубликованы. Я прочитал их все, но мне не удалось выполнить простую задачу: сохранить значение в цепочке для ключей (на устройстве, а не на симуляторе). Я всегда получаю сообщение об ошибке "Не удалось добавить элемент цепочки для ключей".

Вот мой код, я хочу получить uuid и, если он не существует, создать и сохранить его:

+ (NSString *)getDeviceID{
KeychainItemWrapper * keychain = [[[KeychainItemWrapper alloc]initWithIdentifier:KEYCHAIN_ID accessGroup:nil]autorelease];
NSString * uuid = [keychain objectForKey:KEYCHAIN_ID];
if ( uuid == nil ){
    uuid = [self createDeviceID];
    [keychain setObject:uuid forKey:@"UUID"];
}
return uuid;
}

Я просто не могу понять это.

1 ответ

+ (NSString *)getDeviceID
{
    KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:KEYCHAIN_ID accessGroup:nil];
    NSString * uuid = [keychain objectForKey:(__bridge id)kSecAttrLabel];

    if ( uuid == nil )
    {
        uuid = [self createDeviceID];
        [keychain setObject:uuid forKey:(__bridge id)kSecAttrLabel];
    }
    return uuid;
}

(_идентификатор моста)kSecAttrLabel может быть (_bridge id) kSecAttrDescription

Другие вопросы по тегам