由于钥匙串中没有密钥,因此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)

  1. 做一切nsgulliver的post(标记为解决方案)说的。
  2. 如果您已经拥有活动证书,请单击“撤销”按钮,这不会造成任何麻烦,您只需重新创建密钥,然后生成新证书。
  3. 确保安装了Apple的WWDR以将证书颁发机构标记为有效。
  4. 遵循默认的Provisioning Assistent准则。

安装在设备上或为目标签名的配置文件可能无效,请尝试转至Organizer->Provisioning profile并查看配置文件是否具有有效状态? 如果没有尝试删除和刷新它们,如果它们在刷新后显示有效则可以解决您的问题,如果没有那么您应该从keychain删除所有条目并删除配置门户上的配置文件并尝试从头开始创建,如果您仍然面对然后问题从一步一步的指导教程中获得帮助

你不能重新创建匹配的密钥,这会破坏它们的整个目的。 您需要找到旧密钥或从头开始签名过程。

您使用的是生成密钥的机器吗? 如果没有,请转到另一台计算机,导出开发人员配置文件,然后将其导入新计算机。

你能从备份中恢复密钥吗? 如果没有,请停止您正在执行的所有操作并将计算机配置为备份,然后再执行其他操作。

如果您真的遇到困难,您必须从一开始就遵循签名程序,您可以从证书颁发机构申请证书。 这将生成新密钥,您必须创建匹配的配置文件,然后将您的应用程序设置为使用这些配置文件进行签名。 删除旧的配置文件,没有旧密钥它们将是无用的。

遇到代码签名问题时需要阅读:

技术说明TN2250: iOS代码签名故障排除

没有什么比真正了解你的证书中的内容和不是什么,保存必要的部分以及如何使用它们更有帮助。 这不是您最后一次遇到代码签名问题,本技术说明提供了一个长清单,可帮助您确保所有内容都在正确的位置,以帮助您开发应用并最终签名并提交给应用程序商店。

当我过去遇到这个问题时,我刚刚删除了本地机器上的所有内容并重新开始。 所以:

  1. 在Keychain访问中删除与您的开发者帐户关联的密钥。
  2. 在XCode中打开’Organizer’(窗口 – >组织者)
  3. 在“设备”(顶层菜单)和“配置配置文件”(左侧菜单)中,选择所有配置文件并将其删除。
  4. 现在点击刷新。 它会要求您登录以及是否要生成新密钥等,选择是并等待。

我发现这是解决任何配置/关键问题的最快方法,因为你可能花费数小时发现你错过了一些小问题。

你需要锁定钥匙串。 请看截图:

在此处输入图像描述