Tôi có một ứng dụng iOS lưu trữ mã thông báo truy cập trong Keychain. Trong vài tháng qua, tôi đã nhận thấy rằng khoảng 2% người dùng nhận được errSecItemNotFound khi cố truy xuất mã thông báo.Phần trăm nhỏ người dùng nhận được errSecItemNotFound khi truy xuất dữ liệu từ Keychain
Tất cả các luồng StackOverflow có liên quan trỏ tới các tác vụ nền là thủ phạm (iOS KeyChain not retrieving values from background) hoặc bao gồm các thông số không hợp lệ trong chuỗi truy vấn (Keychain: Item reported as errSecItemNotFound, but receive errSecDuplicateItem on addition).
Tôi đang sử dụng kSecAttrAccessibleAfterFirstUnlock để các tác vụ nền có thể truy cập vào Keychain.
Hơn nữa, các truy vấn tìm kiếm trông như thế này:
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];
(Thiết kSecAttrGeneric có lẽ là không cần thiết, nhưng nó không ảnh hưởng đến kết quả của truy vấn anyway)
Đối với hồ sơ, tôi đã trải qua lỗi này với cả hai số SSKeyChain và UICKeychainStore.
Mọi gợi ý sẽ được đánh giá cao:]
hi !! Tôi đang có exacly cùng một vấn đề ... Có UICKeyChainStore lib giải quyết này? Cảm ơn!! – Jovem