Xcode - 如果使用“撤销”按钮创建私钥,如何将私钥添加到开发证书

Lan*_*ria 1 xcode code-signing p12

我错误地按下了Revoke按钮:

在此输入图像描述

我转到developer.apple>我下载了通过按下按钮创建的Certificates新内容。之后我得到的错误之一是Development CertificateRevoke

在此输入图像描述

错误的第二部分表示证书需要 a private key(橙色)。

Xcode> Preferences> Accounts> App ID> Team>中plus sign,它说过期时间Development Certificate10/30/20, 12:04 AM

在此输入图像描述

当我查看钥匙串时,具有该到期日期的证书就在那里,但其左侧没有箭头来切换嵌套的私钥:

在此输入图像描述

如何将私钥添加到使用“撤销”按钮创建的开发证书中?

顺便说一句,按下按钮后创建的分发证书Revoke确实附加了私钥。

Lan*_*ria 6

当您按下Revoke按钮时,您会收到一个新的iPhone Distribution certificate和一个新的iPhone Developer certificate。您可以在开发者门户developer.apple>内查看这些证书certificates。这些证书也将位于您的钥匙串内。您可以使用证书到期日期来查看哪些证书对应于哪些证书。

按“撤销”按钮的问题是您将得到一个iPhone Distribution certificate带有 a 的private key,但它iPhone Developer certificate不会私钥。

如果你查看你的钥匙串,你会看到下面这张图片。请注意iPhone Distribution certificate旁边有一个灰色箭头,但iPhone Developer certificate没有:

在此输入图像描述

这会导致以下2个错误:

在此输入图像描述

它会导致一个循环,您Revoke再次按下按钮,最终会出现同样的 2 个错误。我不知道苹果为什么这样做,但肯定有人犯了错误。

当您转到Keychain>>时loginMy Certificates您只会看到具有私钥的证书(灰色箭头表示)。由于iPhone Developer certificate按下撤销按钮后没有密钥,因此它不会在那里。 根据这个,你需要该密钥,否则你会得到错误:

如果您的 iOS 开发者证书和分发证书未出现在 “我的证书”中,则它们未正确配置为在您的 Mac 上使用。请注意,“证书”是您的 Mac 持有的所有证书的存储库,而“我的证书”是您的 Mac 实际使用的有效证书的子集- 仅出现在“证书”中的证书是不够的。

如果证书不在“我的证书”中,则很可能是因为您在该 Mac 上也没有该证书的正确密钥。您需要找到为该证书创建的私钥(即,来自请求证书的原始 Mac 或备份服务器)。

只要它们确实出现在“我的证书”中,那么它们的密钥就在那里

由于iPhone Developer certificate不会出现在“我的证书”中,因此修复方法是在您按下按钮后,从开发人员门户> AND删除Revoke它生成的证书。从钥匙串中删除它非常重要!使用到期日期来查找它。请保留它,因为它应该可以正常工作并且有一把钥匙(由灰色箭头指示)。iPhone Developer certificatedeveloper.applecertificates keychainiPhone Distribution Certificate

从两个地方删除后,您可以developer certificate按照以下说明手动生成自己的:

手动生成代码签名证书

1- 打开您的Keychain Access.

2- 在左上角 Apple 标志旁边,选择Keychain Access> Certificate Assistant> Request a Certificate From a Certificate Authority..

3-填写用户电子邮件地址(只需使用您的)和通用名称(只需使用您的名字),然后选择“保存到磁盘”。我选择了Let me specify key pair information(也许没有必要),但在下一个屏幕上只需使用Key Size: 2048 bitsalgorithm: RSA。单击继续并将生成的 certSigningRequest 文件保存到桌面。

4- 访问https://developer.apple.com并登录您的帐户。

5- 从左侧边栏中选择证书、ID 和配置文件。

6- 转到证书并单击右上角的 + 按钮。

7- 选择 iOS 应用程序开发,然后单击继续。

8- 在下一页上,您将看到创建 certSigningRequest 文件的说明。单击继续。

9- 将创建的 certSigningRequest(第 3 步中保存到桌面的那个)上传到表单,然后单击“继续”。它将为您生成代码签名证书。

10-下载证书并双击安装。安装后,它将添加到您的钥匙串访问应用程序中。假设它保存到您的下载文件夹中,您只需进入那里并双击它即可。

一旦完成这些步骤,这两个错误就会消失。

如果仍然出现错误,请查看门户中developer.apple>certificateskeychain>中的证书My Certificates。如果门户中有任何内容但不存在,My Certificates那么您需要通过钥匙串访问找到它(查看 钥匙串 >证书),将其删除,然后从门户中将其删除。

我花了一段时间才弄清楚这一点,但过期日期是找到混乱证书的关键。