Iphone 保存值后在KeychainItemWrapper中更改ksecAttracsible

Iphone 保存值后在KeychainItemWrapper中更改ksecAttracsible,iphone,ios,keychain,keychainitemwrapper,Iphone,Ios,Keychain,Keychainitemwrapper,在我以前版本的应用程序(iPhone)中,我用以下代码在钥匙链中保存了值(密码): KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" accessGroup:nil]; [keychain setObject: k

在我以前版本的应用程序(iPhone)中,我用以下代码在钥匙链中保存了值(密码):

KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" 
                                                                     accessGroup:nil];

[keychain setObject: kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];

[keychain setObject: @ "MySuperSecretPassword" forKey:(id)kSecValueData];

[keychain release];
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" 
                                                                    accessGroup:nil];

[keychain setObject: kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];

NSString *key = [keychain objectForKey:(id)kSecValueData];
并获取以下代码中的值:

KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" 
                                                                     accessGroup:nil];

[keychain setObject: kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];

[keychain setObject: @ "MySuperSecretPassword" forKey:(id)kSecValueData];

[keychain release];
KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" 
                                                                    accessGroup:nil];

[keychain setObject: kSecAttrAccessibleWhenUnlocked forKey:(id)kSecAttrAccessible];

NSString *key = [keychain objectForKey:(id)kSecValueData];
因为有时我的应用程序在后台运行,我发现了一个bug,我无法从钥匙链中获得我的价值

我修复了这个错误,将kSecAttrAccessible的值从ksecattraccessibleewhen unlocked改为ksecattraccessibleallways

KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"KeychainTest" 
                                                                 accessGroup:nil];
[keychain setObject:kSecAttrAccessibleAlways forKey:kSecAttrAccessible];

[keychain setObject: @"MySuperSecretPassword" forKey: kSecValueData];
 
[keychain release];
以及:

我的问题是:此更改是否也有助于在以前版本中保存值的用户

我的bug很难恢复,所以我提出了这个问题。 现在我无法恢复此更改后的错误

谢谢