未安装分发证书/私钥

Distribution certificate / private key not installed

使用 Xcode 9.1,构建 iOS 应用程序后,我想将其存档并上传到 AppStore 进行 Beta 测试。 但是在单击按钮 Upload to the App Store... 并选择 Automatically manage signing:

后出现以下问题

"My Name" has one iOS Distribution certificate but its private key is not installed. Contact the creator of this certificate to get a copy of the private key.

我不知道为什么这个“没有安装私钥”,但是分发证书可能是在不同的计算机或其他东西上创建的。无论如何:

找回丢失的私钥并安装它的最简单方法是什么?为了让事情顺利进行。

编辑:我以为另一台电脑坏了所以我正在修正我的答案:

您应该使用私钥从第一台计算机导出证书,然后将其导入新计算机。

我更喜欢iCloud的方式,备份到iCloud然后在新电脑上获取。

如果你因为某些原因不能这样做,你可以在Apple开发者网站上撤销证书,然后让Xcode为你创建一个新的,它也会创建一个全新的私有密钥并将其存储在您的钥匙串中,请务必以您喜欢的方式备份它

您只能拥有一个分发证书。它将 Apple 已知的 public 密钥与私钥结合在一起,私钥位于某些计算机的钥匙串中。如果此分发证书是在另一台计算机上创建的,则私钥位于该计算机的钥匙串中。没有它,这个分发证书就无法工作。

因此要在这台计算机上使用此分发证书,您必须找到那台计算机,打开钥匙串访问,找到并导出私钥,将其邮寄或以其他方式获取到这台台电脑,并导入到这台电脑的keychain中。

如果您进入 Xcode 中的帐户首选项窗格并双击您的团队,您将看到一个对话框,为您提供帮助。如果您看到您的分发证书并且它显示“不在钥匙串中”,您可以按住 Control 键并单击该证书以获取一个菜单项,您可以通过该菜单项向创建该证书的人发送电子邮件并要求他们将其发送给您。该人可以使用相同的导入来选择导出证书,并可以通过电子邮件向您发送导出的证书。

无论哪种方式,私钥或导出的证书都将被加密。您需要知道密码才能使用它。

对于经历过此问题的其他人来说,上面的答案是正确的,但它仍然会有点令人困惑,尤其是如果您有多个证书。这些是我采取的步骤:

  1. 首先注意缺少私钥的实际分发证书中的日期。然后转到另一台计算机上的钥匙串应用程序并在搜索栏中键入 iOS。它将显示您所有的 iOS 开发人员和分发密钥,因此您必须找到正确的密钥。

  2. 单击每个 iOS 分发条目的右箭头以显示证书并找到具有正确日期的那个,然后通过右键单击并选择导出来导出那个。

  3. 然后只需将其导入新计算机的钥匙串中,至少在 Xcode 9.3 中它会立即识别并更正错误,因此您现在可以上传您的成就。

最新(2021 年 1 月)(Xcode 10 - 12)

  1. 转到Xcode - 首选项 - 帐户 - 管理证书
  2. 点击左下方的+,然后Apple Distribution
  3. 稍等片刻,然后点击完成

就是这样。 您可能还想吊销 developer.apple.com 上的旧证书。

旧答案

第 1 步:Xcode -> 产品 -> 档案 -> 单击管理证书

第 2 步:添加 iOS 分布

您是否在新计算机上使用证书。最简单的做法是撤销与该项目相关的先前证书。然后重新上传到商店。 Xcode 将生成一个新的。

添加新的生产证书here,然后下载 .cer 文件并双击将其添加到钥匙串。

一切都会好起来的,别忘了重启Xcode!!!

这个答案是为了 "One Man" 团队快速解决这个问题,而不需要阅读太多关于 "Team"

的信息

步骤 1) 转到网络浏览器,打开您的开发者帐户。转到证书、标识符和配置文件。 Select 证书/生产。您将在此处看到缺少私钥的证书。单击撤销。并按照说明删除此证书。 第 2 步)就是这样!返回 Xcode 验证您的应用。它现在会要求您生成一个新证书。现在您正在愉快地上传您的应用程序。

撤销 developer.apple.com 的所有分发证书并在 Xcode 中验证您的应用程序,在您可以导出密钥以供进一步使用后,可以选择创建新的分发证书。

这对我有用。

人们在这里关于从计算机生成密钥的回答是准确的。但如果仍然失败,请尝试在安装证书

后重新启动 Xcode
  1. 转到这个linkhttps://developer.apple.com/account/resources/certificates/list

  2. 在警报上传中找到证书名称,然后

  3. 撤销

  4. 的证书
  5. 如果你有证书你再下载
  6. 再次上传试飞

在我的例子中 Xcode 没有从钥匙串访问证书,我遵循了以下步骤:

  1. 从钥匙串中删除证书。
  2. 重新启动 mac。
  3. 生成新证书。
  4. 安装新证书。
  5. 清理构建文件夹。
  6. 构建项目。
  7. 再次清理构建文件夹。
  8. 立即存档。 它的工作原理就是这样。

如果您被这个问题困住了。切换计算机后无法将您的构建上传到 App Store。只需单击错误页面上的管理证书,左下角的 + 加号,然后创建一个新的分发证书。那你就可以走了。

我尝试了互联网上所有提到的解决方案,但没有解决方案适用于我的 Mac,然后我根据证书和标识符在苹果开发者网站上手动创建了配置文件。通过手动导入已成功上传到 AppStore 的文件,请按照以下步骤操作

在开发者网站上

1-转到此 link https://developer.apple.com/account/resources/certificates

2- 在配置文件部分使用应用程序包标识符创建新配置文件

3-下载并保存在

在 Xcode

1-转到签名和证书

2-禁用自动管理签名

3- Select 配置文件在其部分

4- 存档应用程序

5-单击分发应用程序 ->ApStore 连接 ->上传->下一步-> 然后 Select XXXX-app 部分的配置文件下载时显示在此部分内,现在上传它

点击管理证书->Apple Distribution->完成

除了以上答案, 如果您对此帐户具有管理员访问权限,请创建新证书并使用它来发布。我只是这样做了,它通过了。

1- 创建新的证书签名请求(KeyChain Access > Certificate Assistant)并保存到磁盘 https://help.apple.com/developer-account/#/devbfa00fef7

2- 登录您的苹果开发者帐户 > 证书和标识符 > 单击 + 添加新证书)

3- 上传您在第 1 步中创建的签名证书,单击下一步并下载证书

4- 双击证书进行安装。确保它受信任并显示“此证书有效”。

5- 现在再次尝试存档并选择自动签名。

应该可以了。

我在使用 Xcode v11.3

时遇到了同样的问题

升级到 Xcode 11.6 解决了我的问题

我在 xCode (v12.4) 中也遇到了同样的问题,并创建了另外两个分发证书,但没有任何效果。

解决方案:重新启动 xCode 似乎对我有用。

就我而言,在撤销旧证书并创建新证书后,Xcode 显示相同的错误(我已经完成了干净的构建并删除了派生数据文件夹)。

在这种情况下,请尝试手动管理签名。

之后,检查第二个字段并设置适当的。

注意:上传构建后,我需要等待 15 分钟才能在应用商店连接中看到我的构建。

只需点击“管理证书”->“+”->“iOS分发”