未安装分发证书/私钥

使用 Xcode 9.1,在构建了一个 iOS 应用程序之后,我想将它存档并上传到 appStore 进行 beta 测试。 但是当我点击按钮 Upload to the App Store...并选择 Automatically manage signing之后,我得到了下面的问题:

“ My Name”有一个 iOS 分发证书,但它的私钥是 未安装。请与此证书的创建者联系以获取私钥的副本。

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

检索和安装丢失的私钥的最简单方法是什么。

161020 次浏览

编辑: 我以为另一台电脑死机了,所以我修改了我的答案:

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

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

如果你因为某些原因无法做到这一点,你可以在苹果开发者网站上撤销该证书,然后让 Xcode 为你创建一个新的证书,它也会创建一个新的私钥,并将其存储在你的钥匙链中,只是要确保以你喜欢的方式备份它

您只能拥有 分发证书。它将一个公钥(苹果公司已知)与一个私钥(位于某台计算机的钥匙链中)结合在一起。如果此分发证书是在另一台计算机上创建的,则私钥位于该计算机的密钥链上。没有它,这个分发证书就不能工作。

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

如果你进入 Xcode 的 Account pref 面板并双击你的 Team,你会看到一个对话框为你提供帮助。如果您看到您的分发证书,它说不在钥匙链中,您可以控制单击该证书以获得一个菜单项,该菜单项允许您向创建证书的人发送电子邮件,并要求他们将证书发送给您。该人员可以使用同一导入选择导出证书,并可以通过电子邮件发送您的导出证书。

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

对于其他经历过这种情况的人来说,上面的答案是正确的,但它仍然可能有点令人困惑,特别是如果您有多个证书。以下是我采取的步骤:

  1. 首先注意实际分发证书中缺少其私钥的日期。然后转到另一台计算机上的钥匙链应用程序,在搜索栏中键入 iOS。它会显示你所有的 iOS 开发者和分发密钥,所以你必须找到正确的一个。

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

  3. 然后只要将它导入到新计算机的钥匙链中,至少在 Xcode 9.3中,它会立即识别并纠正错误,这样您就可以上传您的成果了。

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

  1. 转到 Xcode-参数设置-帐户-管理证书
  2. 单击左下角的 +,然后单击 苹果分销
  3. 稍等片刻,然后单击 成交

仅此而已。 您可能还想撤销 Developer.apple.com上的旧证书。

旧答案

步骤1: Xcode-> Product-> Archives-> 单击管理证书

Click manage certificate

步骤2: 添加 iOS 发行版

Add iOS distribution

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

添加一个新的生产证书 给你,然后下载. cer 文件并双击它将其添加到 Keychain。

一切都会好起来的,不要忘记重新启动 Xcode! ! !

这个答案是为了让“一个人”团队快速解决这个问题,而不需要通读太多关于“团队”的信息

步骤1)进入网页浏览器,打开你的开发者帐户。转到证书,标识符和配置文件。选择证书/生产。您将看到那里列出的缺少私钥的证书。点击撤销。并按照说明删除此证书。 enter image description here 第二步,就是这样!回 Xcode 验证你的应用程序。现在它将要求您生成一个新的证书。现在你高兴地上传你的应用程序。

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

这对我有用。

在这里,人们关于从计算机生成密钥的回答是准确的。但是如果仍然出现故障,请尝试在安装证书后重新启动 Xcode

  1. 转到这个链接 https://developer.apple.com/account/resources/certificates/list

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

  3. 撤销证书

  4. 如果您有证书,请再次下载
  5. 再次上传试飞

在我的例子中,Xcode 不从 keychain 访问证书,我遵循以下步骤:

  1. 从密钥链中删除证书。
  2. 重启 Mac。
  3. 生成新的证书。
  4. 安装新的证书。
  5. 清除生成文件夹。
  6. 建设项目。
  7. 再次清理生成文件夹。
  8. 立刻归档。 成功了,就是这样。

如果你在这个问题上卡住了。切换计算机后,无法上传您的构建到应用程序商店。只需单击错误页面上的“管理证书”,左下角的“ + +”并创建一个新的分发证书。然后你就可以走了。

我尝试了所有提到的解决方案可在互联网上,但没有解决方案工作在我的 Mac,然后我创建了一个供应配置文件在苹果开发者的网站上手动从证书和标识符。通过导入该文件手动应用程序成功上传到 appStore 遵循以下步骤

在开发者网站上

1-转到这个链接 https://developer.apple.com/account/resources/certificates

2-In profile Section 使用 app bundle 标识符创建新的 profile

3-下载它,并保存在一个地方

在 Xcode 上

1-转到签名和证书

禁用自动管理签名

在其部分中选择配置配置文件

4-存档应用程序

5-点击分布式应用程序-> 应用商店连接-> 上传-> 下一步-> 然后选择配置文件从 XXXX-应用程序部分当它下载它显示在这个部分,现在上传它

点击管理证书-> 苹果分发-> 完成

除了上面的答案, 如果您对此帐户具有管理员访问权限,请创建新证书并使用它来发布。我就这么做了,然后就没事了。

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

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

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

双击该证书以安装它。确保它是可信的,并显示“此证书是有效的”。

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

应该可以了。

我在 Xcode v11.3中遇到了同样的问题

升级到 Xcode 11.6为我解决了这个问题

我在 xCode (v12.4)中也遇到了同样的问题,并且创建了另外两个发行证书,但是没有一个对我有用。

enter image description here

解决方案 : 重新启动 xCode 对我来说似乎很管用。

在我的例子中,在撤销旧证书并创建一个新证书之后,Xcode 显示了同样的错误(我进行了一次干净的构建并删除了派生的数据文件夹)。

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

enter image description here

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

enter image description here

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

点击“管理证书”-> “ +”-> “ iOS 发行版”