如何解决 Xcode 中的签名证书问题

Posted

技术标签:

【中文标题】如何解决 Xcode 中的签名证书问题【英文标题】:How do I resolve problems with my Signing Certificates in Xcode 【发布时间】:2020-09-30 15:12:17 【问题描述】:

System Preferences / Manage Certificates

以上是 Xcode(第 11 版)的系统偏好设置/管理证书区域的图片。

我知道这很混乱,但我想请求社区帮助清理我的 Xcode 签名证书。

由于我的签名证书的状态,我无法在 Xcode 中存档任何应用程序,甚至是“Hello World”应用程序。我是 Apple Developer 的付费开发者。

下面是我系统的 Key Chain Access 的图片。

提前致谢。 莱昂W53

[钥匙链访问图][1]

【问题讨论】:

【参考方案1】:

我现在聪明了一点。

要提交到 Apple App Store,您需要分发证书和 ios 分发证书。两者都必须有公钥和私钥。

私钥是指将提交应用程序的计算机。私钥是 Mac 的密码,用于归档应用并提交。

首先,您需要进入您的分发版 Mac 并打开 Keychain Access 应用程序(应用程序/实用程序/Keychain Access)。进入后,在屏幕顶部,转到 Keychain Access/Certificate Assistant/Request a Certificate from a Certificate Authority。

注意 1请求需要用户电子邮件地址。使用您用于登录 Apple Developer Site 的电子邮件地址。您不需要通用名称。选择请求已保存到磁盘并继续。您将被允许选择证书的名称和保存文件夹。点击保存。

您可以根据这个证书签名请求创建所有证书。

进入 Apple 开发者网站并登录(您需要付费才能执行此操作)。使用您用于保存证书的 Apple ID。

转到证书、标识符和配置文件。

单击左栏中的证书。单击证书旁边的 + 以添加新证书。

系统会询问您要创建哪种证书。

您需要选择 Apple Development 才能在您的 Mac 上开发应用程序。您可能需要 iOS App Development 来开发 iOS 应用程序,但我认为这没有必要

要上传和分发您的应用,您需要 Apple Distribution 和 iOS Distribution。

无论您选择哪一个,单击继续,您将被要求上传签名证书请求。在这里,您浏览到您保存的证书签名请求(上面的注 1)。单击生成,将创建证书。单击“下载”,证书将下载到您 Mac 上的“下载”文件夹中。

您可以创建多种不同类型的证书,而无需重新创建 CSR - 一遍又一遍地使用相同的证书。

在您的 Mac 上,您只需双击下载的证书,它们就会被添加到您的钥匙串中。

在 XCode 中,选择 App 文件夹树的 App 根目录并打开“Signing and Capabilities”。从下拉列表中选择您在 Apple Developer Site 中的团队。还要选择自动管理签名。

同样在 XCode 中,您可以转到 XCode/Preferences/Accounts。您应该选择左侧的 Apple ID,这与您登录 Apple 开发者帐户时相同。在右侧,您可以选择将执行上传的团队,然后单击管理证书。您需要有效的 iOS 开发、Apple 开发和 Apple 分发证书。

注意 2 如果有任何证书缺少私钥,这是因为 CSR 是在与当前 PC 不同的 PC 上生成的,或者您没有以相同的身份登录Apple 开发者网站上的开发者。这发生在我身上,这是因为我没有像在系统偏好设置中登录我的电脑那样登录到开发者站点。

如果您存档,并且您丢失了私钥,存档将要求您使用密码登录钥匙串,该密码可以为每个丢失的钥匙解锁 PC。完成后,将创建存档。

注意 3在此犯任何错误,您将生成一个带有非零退出代码的失败存档。苹果没有提供如何解决这个问题的线索。

我目前的情况是我拥有有效的 Apple 开发、iOS 开发和 Apple 分发证书,并且可以存档。除了有效的 Apple 分发证书之外,我还有两个缺少私钥的 Apple 分发证书。但是,我可以归档应用程序。

善待并确保一切安全。

【讨论】:

以上是关于如何解决 Xcode 中的签名证书问题的主要内容,如果未能解决你的问题,请参考以下文章

通过 Xcode 安装分发证书签名的 iOS 应用程序?

Xcode 8 中的代码签名

XCode 存档:“未找到代码签名身份:未找到有效的签名身份(即证书和私钥对)。”

“签名身份”和“证书”之间的区别?

Xcode 存在签名证书问题

Xcode:签名问题:证书安装失败(8.2.1 版)