数据存储后的钥匙串icloud支持?

时间:2013-10-29 15:50:49

标签: ios ios7 icloud uuid keychain

我想知道当用户在iOS 7上没有打开iCloud Keychain支持(iOS默认?)时会发生什么,然后运行以下代码,然后启用iCloud Keychain支持。

    KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"com.joseandro.UUID"  accessGroup:nil];

    CFUUIDRef theUUID = CFUUIDCreate(NULL);
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);

    NSString* UUID = [(NSString *)string autorelease];

    [keychain setObject:@"UNIQUE_IDS_SERVICE" forKey:kSecAttrService];
    [keychain setObject:@"DeviceUUID" forKey:kSecAttrAccount];
    [keychain setObject:UUID forKey:kSecValueData];
    [keychain setObject:kSecAttrAccessibleAlwaysThisDeviceOnly forKey:kSecAttrAccessible];

    [keychain release];
    keychain = nil;

将使用先前存储的“DeviceUUID”值数据,或者完全删除Keychain,因此返回的值将为空(使用以下代码)并且在所有发生之前我将丢失所存储的内容?

   KeychainItemWrapper* keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"com.joseandro.UUID"  accessGroup:nil];

   NSString* UUID = [keychain objectForKey:(kSecValueData)];
   return UUID;

1 个答案:

答案 0 :(得分:0)

启用iCloud Keychain支持后无关紧要,一旦存储密钥,密钥将始终存在。

我无法验证iCloud尚未激活且操作系统被删除并重新安装时的行为。