5

你可能会想,不再是这样一个已经有成千上万个话题的问题了。但是,我无法找到解决此问题所需的答案。

这些主题都没有钥匙串那么深入。

当我尝试将我的应用程序部署到 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 中的 Refresh 按钮从 Apple 的服务器检索所有可用的配置文件(允许您自动获取)

在尝试了所有这些方法之后,我仍然无法解决问题。我看到的一个问题是,钥匙串中的证书首先显示无效状态,现在已解决。

但是,如果我是对的,证书应该附有两个密钥。公钥和私钥,这些都没有显示。

钥匙串访问的“钥匙”选项卡中也没有显示任何钥匙。


解决方案

(感谢 nsgulliver)

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

6 回答 6

2

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

于 2013-02-28T14:49:53.103 回答
2

您无法重新创建匹配的密钥,这会破坏它们的全部目的。您需要找到旧密钥或从头开始签名过程。

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

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

如果你真的被卡住了,你必须从一开始就遵循签名程序,从证书颁发机构请求证书。这将生成新密钥,您必须创建匹配的配置文件,然后将您的应用程序设置为使用这些进行签名。删除旧的配置文件,如果没有旧密钥,它们将毫无用处。

于 2013-02-28T14:53:32.673 回答
2

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

在此处输入图像描述

于 2018-07-06T00:20:49.267 回答
1

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

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

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

于 2013-02-28T16:06:53.240 回答
0

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

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

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

于 2013-02-28T14:55:27.410 回答
0

删除所有旧配置文件 ( ~/Library/MobileDevice/Provisioning Profiles/) 并更新 xCode 后,可以再次找到证书。

于 2020-03-30T19:33:59.770 回答