我想用 KeychainItemWrapper 将 UUID 保存在钥匙串中,所以我在MyKeychainManager.m中添加了以下方法:
#define keychain_idenentify @"com.myapp.bundle1"
+ (void)saveUUID:(NSString *)UUID{
if([MyKeychainManager getUUID].length > 0) {
return;
}
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc]initWithIdentifier:keychain_idenentify accessGroup:nil];
[keychain setObject:UUID forKey:(__bridge id)kSecAttrLabel];
}
+ (NSString *)getUUID {
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc]initWithIdentifier:keychain_idenentify accessGroup:nil];
NSString *uuidString = [keychain objectForKey:(__bridge id)kSecAttrLabel];
return uuidString;
}
但是在我将keychain_identify更改为com.otherApp.bundle后,它崩溃了
结果 = SecItemAdd((CFDictionaryRef)[self dictionaryToSecItemFormat:keychainItemData], NULL); NSAssert(result == noErr, @"无法添加钥匙串项。");
错误是错误 - 25299
为什么会这样以及如何解决这个问题?我应该选择哪个,例如kSecAttrLabel?我将它更改为kSecAttrService它很有趣,但我不知道是否还有其他潜在的错误。
任何帮助将不胜感激。