我在设备上访问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管理)
答案 0 :(得分:2)
从Xcode尝试在启动应用时禁用所有断点。 您可以在之后启用它们。
答案 1 :(得分:1)
有两种方法可以解决此问题。
将权利文件添加到项目中。
通过代码签名强制向目标添加文件夹代码签名。
代码签署 - 验证 - 强制 - 签署 &#34; $ CODE_SIGN_IDENTITY&#34;&#34; $ CODESIGNING_FOLDER_PATH&#34;
答案 2 :(得分:0)
在Target的Build Phases中添加一个包含以下内容的运行脚本:
codesign --verify --force --sign "$CODE_SIGN_IDENTITY" "$CODESIGNING_FOLDER_PATH"
实施例:
我不确定为什么要这样做,但是我能克服一个非常类似的错误。