키 체인에 액세스 토큰을 저장하는 iOS 앱이 있습니다. 지난 몇 달 동안 토큰 검색을 시도 할 때 약 2 %의 사용자가 errSecItemNotFound을 얻는 것으로 나타났습니다.키 체인에서 데이터를 검색 할 때 errSecItemNotFound를받는 사용자의 비율이 낮음
모든 관련 StackOverflow 스레드는 원인이되는 백그라운드 작업 (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 모두 발생했습니다. 내가 KDJKeychainItemWrapper을 사용했다
안녕하세요 !! 나는 exacly 같은 문제가있어 ... UICKeyChainStore lib이 해결합니까? 감사!! – Jovem