【问题标题】:KeychainItemWrapper 'Couldn't add the Keychain Item.'' KeychainItemWrapper '无法添加钥匙串项。
【发布时间】:2017-01-29 13:27:25
【问题描述】:

我想将访问令牌存储到钥匙串。但我得到了错误:Couldn't add the Keychain Item.'

我查看了一些关于 stackoverflow 的帖子,例如: Storing email in keychain impossible (KeychainItemWrapper)

我的代码:

let a = NSKeyedArchiver.archivedData(withRootObject: "980a872c17a075367357e25e88c1c0476417092a")
let keyWrapper = KeychainItemWrapper.init(identifier: "23123123", accessGroup: nil)
keyWrapper?.setObject(a, forKey: kSecValueData)
  1. 我试过添加这个

    keyWrapper?.setObject(kSecAttrAccessible, forKey: kSecAttrAccessible)
    
  2. kSecValueData更改为kSecAttrGeneric

我正在使用 swift 3.0 运行 Xcode 8。任何提示谢谢!

编辑============================

Viruss mca 的回答开启 Share keychain entitlement 只为我工作一次 : (

【问题讨论】:

标签: ios swift keychainitemwrapper


【解决方案1】:

我最近在使用 Xcode 8 时遇到了这个问题。

要解决此问题,您必须将“共享钥匙串权利”添加到 Xcode 功能。

很多用户都遇到过这个问题。

参考: https://forums.developer.apple.com/thread/60617

【讨论】:

  • 嗨病毒,这很有趣。这对我有用一次。我启用了它。现在仍然是同样的错误。我尝试将 KeyChain Groups 字符串添加到 accessGroup 参数中,但仍然没有帮助。有什么想法吗?
  • @WilliamHu:你从哪里得到这个问题的?在设备上?
  • 模拟器和设备。
  • 抱歉,请注意,我取消了接受答案。还是谢谢你!
  • 我只在我的模拟器中看到这个错误,在 iOS 10 设备上它运行良好。我很困惑。
【解决方案2】:

好的,经过很长时间的挣扎,我发现我的 Apple 帐户在我更新到 Xcode8 之前就已过期。我通过删除我的帐户然后再次登录来解决它。并且仅适用于设备而非模拟器。

【讨论】:

  • 关于权利的另一个答案应该是公认的答案。
  • 嗨@KennyWyland 我知道病毒确实提供了一个很好的解决方案,但它并没有真正解决我的问题。我对这个答案投了赞成票。谢谢!
  • 它并没有解决你的问题,但是从提供的答案来看,它的原因是最好的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
  • 2017-07-02
相关资源
最近更新 更多