有时,当我在Xcode上运行设备上的应用程序时,我会尝试访问密钥链但由于错误-34018而失败.这与任何记录的钥匙串错误代码都不匹配,并且无法一致地再现.(可能有30%的时间发生,我不清楚为什么会发生这种情况).使调试这个问题变得非常困难的原因是完全缺乏文档.知道是什么导致这个以及如何解决它?我正在使用Xcode 5并在设备上运行iOS 7.0.4.
这里有一个公开的问题:https://github.com/soffes/sskeychain/issues/52
编辑:每个请求添加钥匙串访问代码
我正在使用该SSKeychain库与钥匙串连接.这是片段.
#define SERVICE @"default"
@implementation SSKeychain (EXT)
+ (void)setValue:(NSString *)value forKey:(NSString *)key {
NSError *error = nil;
BOOL success = NO;
if (value) {
success = [self setPassword:value forService:SERVICE account:key error:&error];
} else {
success = [self deletePasswordForService:SERVICE account:key error:&error];
}
NSAssert(success, @"Unable to set keychain value %@ for key %@ error %@", value, key, error);
if (!success) {
LogError(@"Unable to set value to keychain %@", error);
}
LogTrace(@"Will set …Run Code Online (Sandbox Code Playgroud) 我使用钥匙串存储用户名和密码,有时当我试图获取用户名的密码时,它告诉我errSecItemNotFound.
我保持密码始终存在于钥匙串中,为什么找不到密码呢?
谢谢.