8

I want to store access token to keychain. But i got the error: Couldn't add the Keychain Item.'

I checked some posts on stackoverflow like: Storing email in keychain impossible (KeychainItemWrapper)

MyCode:

let a = NSKeyedArchiver.archivedData(withRootObject: "980a872c17a075367357e25e88c1c0476417092a")
let keyWrapper = KeychainItemWrapper.init(identifier: "23123123", accessGroup: nil)
keyWrapper?.setObject(a, forKey: kSecValueData)
  1. I tried add this

    keyWrapper?.setObject(kSecAttrAccessible, forKey: kSecAttrAccessible)
    
  2. Change kSecValueData to kSecAttrGeneric

I am running Xcode 8 with swift 3.0. Any hints thank you!

EDIT===========================

Viruss mca's answer turn on Share keychain entitlement just work once for me : (

1

2 Answers 2

27

I have recently face this issue with Xcode 8.

To solve the issue You have to add the "Share keychain entitlement" to Xcode capabilities.

enter image description here

There are many users who faced this issue.

Ref: https://forums.developer.apple.com/thread/60617

Sign up to request clarification or add additional context in comments.

5 Comments

Hi Viruss, it's interesting. This just work for me once. I enabled it. And still same error now. I tried to add KeyChain Groups string into accessGroup parameter, still no help. Any idea?
@WilliamHu: where did you get this issue? on device?
Both simulator and device.
Sorry just for attention, i canceled the accept answer. Thank you anyway!
I only see this error in my simulator, on iOS 10 devices it runs fine. I'm very confused.
-2

OK, after struggle a long time i found i my Apple account was expired before i update to Xcode8. I solved it by removed my account then login again. And only for device not simulator.

3 Comments

The other answer about the Entitlements should really be the accepted answer.
Hi @KennyWyland i knew Viruss did provide a good solution, but it doesn't really solve my problem. I have up voted for this answer. Thank you!
It didn't solve your problem, but was the reason for it, from the answers provided, was the best one

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.