由于钥匙串中没有密钥,因此XCode代码签名错误
你可能会想,不再是这样一个问题,已经有成千上万的话题。 但是,我没能找到解决这个问题所需的答案。
这些主题都没有像钥匙串那么深。
当我尝试将我的应用程序部署到iPhone时,我收到以下消息:
Code Sign error: The identity 'iPhone Developer: [Name] ([ID])' doesn't match any valid, non-expired certificate/private key pair in your keychains.
现在,如上所述,我一直在寻找多个指南或修复,但是,他们似乎都没有解决这个问题。
我尝试过的事情:
- 无数次使用Apple的演练来部署应用程序
- 在互联网上搜索了应用部署的指南
- 更改了’xcodeproj’包中’pbxproj’文件的内容。
- 使用xcode 4.6中的“刷新”按钮从Apple服务器检索所有可用的配置文件(允许您自动获取)
在尝试了所有这些方法后,我仍然无法解决问题。 我看到的一个问题是,第一手钥匙串中的证书显示无效状态,现在已经解决了。
但是,如果我是对的,那么证书上应该有两个密钥。 公钥和私钥,这些都没有显示。
Keychain Access的Keys选项卡中也没有显示任何键。
解决方案(感谢nsgulliver)
- 做一切nsgulliver的post(标记为解决方案)说的。
- 如果您已经拥有活动证书,请单击“撤销”按钮,这不会造成任何麻烦,您只需重新创建密钥,然后生成新证书。
- 确保安装了Apple的WWDR以将证书颁发机构标记为有效。
- 遵循默认的Provisioning Assistent准则。
安装在设备上或为目标签名的配置文件可能无效,请尝试转至Organizer->Provisioning profile
并查看配置文件是否具有有效状态? 如果没有尝试删除和刷新它们,如果它们在刷新后显示有效则可以解决您的问题,如果没有那么您应该从keychain
删除所有条目并删除配置门户上的配置文件并尝试从头开始创建,如果您仍然面对然后问题从一步一步的指导教程中获得帮助
你不能重新创建匹配的密钥,这会破坏它们的整个目的。 您需要找到旧密钥或从头开始签名过程。
您使用的是生成密钥的机器吗? 如果没有,请转到另一台计算机,导出开发人员配置文件,然后将其导入新计算机。
你能从备份中恢复密钥吗? 如果没有,请停止您正在执行的所有操作并将计算机配置为备份,然后再执行其他操作。
如果您真的遇到困难,您必须从一开始就遵循签名程序,您可以从证书颁发机构申请证书。 这将生成新密钥,您必须创建匹配的配置文件,然后将您的应用程序设置为使用这些配置文件进行签名。 删除旧的配置文件,没有旧密钥它们将是无用的。
遇到代码签名问题时需要阅读:
技术说明TN2250: iOS代码签名故障排除
没有什么比真正了解你的证书中的内容和不是什么,保存必要的部分以及如何使用它们更有帮助。 这不是您最后一次遇到代码签名问题,本技术说明提供了一个长清单,可帮助您确保所有内容都在正确的位置,以帮助您开发应用并最终签名并提交给应用程序商店。
当我过去遇到这个问题时,我刚刚删除了本地机器上的所有内容并重新开始。 所以:
- 在Keychain访问中删除与您的开发者帐户关联的密钥。
- 在XCode中打开’Organizer’(窗口 – >组织者)
- 在“设备”(顶层菜单)和“配置配置文件”(左侧菜单)中,选择所有配置文件并将其删除。
- 现在点击刷新。 它会要求您登录以及是否要生成新密钥等,选择是并等待。
我发现这是解决任何配置/关键问题的最快方法,因为你可能花费数小时发现你错过了一些小问题。
你需要锁定钥匙串。 请看截图:
- 在Facebook iOS SDK v 3.1.1上遇到问题
- 创buildUIImageView时无效的上下文
- 使用未parsing的标识符“GGLContext”
- UIBezierPath到UIImage
- 使用AVPlayer在ios中进行audiostream式传输
- 如果一个文本字段已经添加到单元格,怎么不创build一个新的文本字段
- NSTimer在后台的行为(addTimer:,beginBackgroundTaskWithExpirationHandler :)
- 任何方式来使用iOS SDK 4.3的Xcode 3?
- 在iPhone X上使WKWebview“真实”全屏(从WKWebView中删除安全区域