Keychain SecOSStatusWith错误:[ - 34018]

时间:2015-01-27 15:04:25

标签: ios iphone xcode keychain

我在设备上访问Keychain时遇到问题。仅当应用程序从Xcode启动时才会发生这种情况。如果我自己启动应用程序(通过点击其图标),钥匙串可以毫无问题地运行。模拟器中也没有问题。

控制台输出:

Jan 27 14:33:24 iPhone MyApp[4305] <Error>:  SecOSStatusWith error:[-34018] The operation couldn’t be completed. (OSStatus error -34018 - Remote error : The operation couldn't be completed. (OSStatus error -34018 - client has neither application-identifier nor keychain-access-groups entitlements))
Jan 27 14:33:24 iPhone securityd[77] <Error>:  securityd_xpc_dictionary_handler MyApp[4305] delete The operation couldn’t be completed. (OSStatus error -34018 - client has neither application-identifier nor keychain-access-groups entitlements)

我正在使用Xcode 6.1.1和iPhone 5和iOS 8.1.1。

值得注意的是,我正在尝试调试的应用程序具有访问钥匙串的代码,位于 Cocoa Touch框架目标中(这可能是问题的根源)。

配置文件是通用配置文件:iOSTeam Provisioning Profile: *(由Xcode管理)

3 个答案:

答案 0 :(得分:2)

从Xcode尝试在启动应用时禁用所有断点。 您可以在之后启用它们。

答案 1 :(得分:1)

有两种方法可以解决此问题

  1. 将权利文件添加到项目中。 enter image description here

  2. 通过代码签名强制向目标添加文件夹代码签名。

  3.   代码签署 - 验证 - 强制 - 签署   &#34; $ CODE_SIGN_IDENTITY&#34;&#34; $ CODESIGNING_FOLDER_PATH&#34;

    enter image description here

答案 2 :(得分:0)

在Target的Build Phases中添加一个包含以下内容的运行脚本:

codesign --verify --force --sign "$CODE_SIGN_IDENTITY" "$CODESIGNING_FOLDER_PATH"

实施例: adding a Run Script

我不确定为什么要这样做,但是我能克服一个非常类似的错误。