Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

APCKeychainStore.stringForKey randomly returning empty values #119

Open
brendenwest opened this issue Jul 28, 2015 · 4 comments
Open

APCKeychainStore.stringForKey randomly returning empty values #119

brendenwest opened this issue Jul 28, 2015 · 4 comments

Comments

@brendenwest
Copy link

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:

var email : String {
    get {
        if let value = APCKeychainStore.stringForKey(kEmailPropertyName) {
            return value
        }
        return ""
    }
    set {
        APCKeychainStore.setString(newValue, forKey: kEmailPropertyName)
    }
}

var password : String {
    get {
        if let value = APCKeychainStore.stringForKey(kPasswordPropertyName) {
            return value
        }
        return ""
    }
    set {
        APCKeychainStore.setString(newValue, forKey: kPasswordPropertyName)
    }
}
@rsanchezsaez
Copy link

Could this be related to the infamous -34018 (errSecMissingEntitlement) keychain bug?

@brendenwest
Copy link
Author

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.

@rsanchezsaez
Copy link

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.

@brendenwest
Copy link
Author

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.

Erin-Mounts added a commit to Erin-Mounts/AppCore that referenced this issue Jun 8, 2016
…phview_changes

Feature/graphview changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants