कभी-कभी जब मैं 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 keychain account %@. is to nil? %d", key, value == nil);
if (value == nil)
LogWarn(@"Setting keychain %@ to nil!!!", key);
}
+ (NSString *)valueForKey:(NSString *)key {
NSError *error = nil;
NSString *value = [self passwordForService:SERVICE account:key error:&error];
if (error && error.code != errSecItemNotFound) {
NSAssert(!error, @"Unable to retrieve keychain value for key %@ error %@", key, error);
LogError(@"Unable to retrieve keychain value for key %@ error %@", key, error);
}
return value;
}
+ (BOOL)removeAllValues {
LogInfo(@"Completely Reseting Keychain");
return [[self accountsForService:SERVICE] all:^BOOL(NSDictionary *accountInfo) {
return [self deletePasswordForService:SERVICE account:accountInfo[@"acct"]];
}];
}
@end
समय का अधिकांश भाग ठीक है। कभी-कभी मैं जोर से असफलता से टकराता हूँ जहाँ मैं या तो किचेन से लिखने या पढ़ने में असमर्थ होता हूँ, जिससे गंभीर रूप से विफलता हो जाती है।