Open brendenwest opened 9 years ago
Could this be related to the infamous -34018 (errSecMissingEntitlement) keychain bug?
I get no errors on compile or at run time.
Also, I haven't enabled the Keychain sharing entitlement, since I don't expect to share the keychain data with other apps.
Are you sure you don't see any keychain-related message logged onto the console at runtime when you get nil
from the stringForKey()
method? (AppCore should be compiled in Debug
for you to see them)
The bug I was mentioning would manifest by APCKeychainStore
running this code path, which would print a debug log message on the console and return nil
.
There's more info about this issue here. It has been a longstanding keychain issue on iOS, and unfortunately it's quite random.
I see this error when I haven't yet set a passcode:
APC_DEBUG in +[APCKeychainStore dataForKey:service:accessGroup:] at APCKeychainStore.m:105 => SecItemCopyMatching query failed with error code: 4294941996i
But an error is expected there. I haven't recently repro'd the issue of unexpected missing values.
I'm seeing unpredictable behavior with APCKeychain, where APCKeychainStore.stringForKey incorrectly returns an empty value about 1/3 of the time. Where APCKeychainStore incorrectly returns empty values, I can force-close the app and see the correct values returned on subsequent queries.
I'm getting and setting keychain values via Swift, like this: