से डेटा पुनर्प्राप्त करते समय त्रुटियों को प्राप्त करने वाले उपयोगकर्ताओं का छोटा प्रतिशत, मेरे पास एक आईओएस ऐप है जो कि कीचेन में एक्सेस टोकन संग्रहीत करता है। पिछले कुछ महीनों में, मैंने देखा है कि टोकन को पुनर्प्राप्त करने का प्रयास करते समय उपयोगकर्ताओं के लगभग 2% उपयोगकर्ताओं को errSecItemNotFound मिलता है।कीचैन
सभी प्रासंगिक स्टैक ओवरफ्लो थ्रेड अपराधी होने के कारण पृष्ठभूमि कार्यों को इंगित करते हैं (iOS KeyChain not retrieving values from background) या क्वेरी स्ट्रिंग (Keychain: Item reported as errSecItemNotFound, but receive errSecDuplicateItem on addition) में अमान्य पैराम सहित।
मैं kSecAttrAccessibleAfterFirstUnlock का उपयोग कर रहा हूं, इसलिए पृष्ठभूमि कार्य केवल कीचैन तक पहुंचने में सक्षम होना चाहिए।
इसके अलावा, खोज प्रश्न इस प्रकार है:
NSMutableDictionary *query = [[NSMutableDictionary alloc] init];
[query setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass];
[query setObject:(__bridge id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData];
[query setObject:(__bridge id)kSecMatchLimitOne forKey:(__bridge id)kSecMatchLimit];
[query setObject:service forKey:(__bridge id)kSecAttrService];
[query setObject:key forKey:(__bridge id)kSecAttrGeneric];
[query setObject:key forKey:(__bridge id)kSecAttrAccount];
(kSecAttrGeneric स्थापना शायद बेमानी है, लेकिन यह क्वेरी के परिणाम वैसे भी प्रभावित नहीं करता है)
रिकॉर्ड के लिए, मैं SSKeyChain और UICKeychainStore दोनों के साथ इस बग का अनुभव किया है।
कोई संकेत अत्यधिक सराहना किया जाएगा:]
हाय !! मैं बेहद एक ही मुद्दा कर रहा हूं ... क्या UICKeyChainStore lib ने हल किया है? धन्यवाद!! – Jovem