iOS 8 beta OSStatus -34018(errSecMissingEntitlement)

时间:2014-07-09 11:10:39

标签: ios xcode ios-simulator keychain

当我在Simulator中运行我在Xcode 6 / iOS SDK beta 3中构建的应用程序时,SecItemCopyMatching函数返回-34018错误代码(errSecMissingEntitlement)。

OSStatus result = SecItemCopyMatching ((__bridge CFDictionaryRef)retrieveQueryDict, (CFTypeRef *)&dataRef);

我已经注意到beta 1中的问题,然后在beta 2中它被修复了。此外,苹果公司在发行说明中提到了beta 1的已知问题,已在beta 2中修复。到目前为止,这么好。但是,在测试版3中,这个错误再次发生在同一个地方。但这次没有解释。

其他人是否遇到过这个问题,或者有一些解决方法?这应该仅在模拟器上发生(至少是测试版1的情况;目前我没有设备可以检查),但是对于单元测试,它是一个阻止者。

3 个答案:

答案 0 :(得分:2)

我和你的情况完全相同。我正在使用SSKeychain,但对每个人来说似乎都是同样的问题。虽然发行说明没有说明,但问题似乎在iOS 8 beta 1和beta 3中,跳过beta 2。

我使用的解决方法基于以下答案:SecItemAdd and SecItemCopyMatching returns error code -34018 (errSecMissingEntitlement)

这对我有用:我在Xcode 6中登录了我的开发者帐户,然后在相关项目目标的功能选项卡中启用了“Keychain Sharing”。

答案 1 :(得分:1)

我仍然遇到启用Keychain Sharing的问题,但现在我已经解决了这个问题(我认为)。我的设备上有一个通配符配置文件,显示它没有有效的签名身份。我的应用程序的配置文件也是有效的。当我删除通配符配置文件时,我停止了-34018错误。

我还确保目标的Build Settings的Code Signing部分中列出的代码签名标识和配置文件与应用程序的相同(不是通用的" iPhone Developer" one )

答案 2 :(得分:0)

已修复测试版4.但发行说明中没有信息。