Open nunogoncalves opened 7 years ago
I got the same result. I'm also on an updated Xcode 8; deployment target iOS 10.0; using:
$ swift --version
Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38)
Target: x86_64-apple-macosx10.9
I've put Locksmith.saveData(data:forUserAccount:)
in viewDidLoad()
. And then I'm getting nil
when attempting Locksmith.loadDataForUserAccount(userAccount:)
in a button clicked action.
Ah, found my solution here: Issue #146 Which points to: http://stackoverflow.com/a/38543243/2684355 Needed to enable Keychain Sharing in Targets > Capabilities.
Not sure if this will also work for @nunogoncalves?
This workaround also worked for me, which is enough to unblock my work using this library, but I think it is still a bug in Locksmith. Will submit a PR if I end up fixing it myself, probably something lost in translation when migrating to Swift 3. Had some problems myself related to the distinction between NSDictionary, Dictionary<String,AnyObject!> and Dictionary<String,AnyObject>; which caused code paths to fail in unexpected ways.
The documentation README also needs updating for Swift 3 method call syntax, and when used as in the initial bug report in a simple fresh project reproduces the bug. When using updateData rather than saveData, a LocksmithError.undefined is thrown.
Hope this additional information helps!
@mtso yes that worked. Thanks. :)
I had this same issue and @mtso's suggestion fixes it. Spent a long while checking my code to make sure it wasn't an issue from the conversion to Swift 3 that I just did. If it is an intentional requirement or not, at the least it should result in an error so it's known what is wrong.
Hi,
Just updated to the 2.0 version and now I'm unable to retrieve any values. Am I missing something?
I'm Using Xcode 8, and swift 3. Deployment target iOS 10.0
Problem: