ChatGPT解决这个技术问题 Extra ChatGPT

钥匙串上的分发证书中缺少私钥

我有以下问题,我无法在任何地方找到解决方案。基本上,我们有一个公司开发人员帐户(不是企业),因此为了提交我们的应用程序,我要求我们的团队负责人向我发送分发证书,并创建并向我发送分发配置文件。

使用开发人员配置文件,一切正常,但是当我安装证书和配置文件时,我没有在 Xcode 上看到分发配置文件,而且我在钥匙串中的 dist 证书下也没有私钥。

有谁知道如何解决这个问题?我在不同的地方读到我需要吊销证书并创建一个新证书,但我真的不能这样做,因为我们公司有很多应用程序,我不能为每个人吊销它。

有时私钥丢失,因为我们正在尝试使用在任何其他机器上创建的 .CSR 创建证书。因此,请确保您的 CSR 文件也应该在您尝试创建和安装证书的同一台机器上创建。或者您可以使用 .p12 证书来避免此问题
就我而言,我的钥匙串中有两个相同的签名证书......它解决了简单地删除其中一个......以防万一......

N
Nirma

https://i.stack.imgur.com/vXRjU.png

曾经创建开发人员凭据的人最初需要转到他们计算机上的钥匙串,然后右键单击私有和公共密钥,然后将密钥导出到文件中。然后,您只需在计算机上下载该文件并打开它,它就会添加到您的钥匙串中。

您需要同时拥有配置文件的私钥(.pem 文件)和证书。


更具体地说,它是您需要的 .p12 文件(导出)
@Nirma 如果我们无法访问最初创建开发人员凭据的那台计算机,该怎么办。
@NishadArora 您必须创建一个新密钥才能使用。没有私钥就无法使用它。 AFAIK
@Nirma 如何创建一个新的
如果它对任何人有帮助,在安装了公共证书和私钥之后(在 Keychain Access 中检查并显示)我还必须重新启动 Xcode 以获取私钥。在 OSX 10.15.5 上使用 Xcode 11.6。
u
user9088454

只要您仍然可以访问用于生成原始分发证书的 mac,它就非常简单。

只需使用该 Mac 的钥匙串访问应用程序来导出证书和私钥。使用 shift 或 command 选择两者并右键单击以导出到 .p12 文件。

附上截图以使其非常清晰。

在您的 Mac 上,导入该 .p12 文件,一切顺利(只需确保您拥有有效的配置文件)。

https://i.stack.imgur.com/e3vAi.png


u
user9088454

为了补充其他人的答案,如果您不再有权访问该私钥,那么恢复并运行相当简单:

在配置门户中吊销您的活动证书 创建新的开发人员证书(钥匙串访问/.../csr 的请求...等) 下载并安装新证书 为现有应用程序 ID 创建新的配置文件(在配置门户上)下载并安装新的配置文件并在构建中设置适当的代码签名身份


在我的公司这里总是一团糟,没有人知道在哪台计算机上创建了某个证书。只是更好地撤销和重新创建
@user2387149 6 年后我在这里建议 CI/CD 做这种事情,而忘记通过 xCode 进行分发。
如果我已经下载了分发证书,那么我将其撤销,然后再次请求它。我应该删除旧的分销证书吗?
@kafinsalim 是的,因为它已被撤销且不再有效
J
Jamshed Alam

从 KeyChain 中删除现有的文件,获取 .p12 文件并将其添加到创建证书的 mac。

要从源 Mac 获取 .p12,请转到 KeyChain,展开证书,选择两者并导出 2 个项目。这会将 .p12 文件保存在您的位置:

https://i.stack.imgur.com/jwjSE.png


R
Ramis

对于害怕重新创建 AppStore 分发证书的人,Apple documentation 说:

重要提示:重新创建您的开发或分发证书不会影响您提交到 App Store 的应用程序,也不会影响您更新它们的能力。

但它会影响 Apple Developer Enterprise 生态系统的应用。


如果您有企业帐户,它就可以!
通过“企业生态系统”.... 例如。您是在谈论如果您在一家大公司工作并且 100 名开发人员拥有该特定应用程序的私钥?
@petrosmm 是的。是企业专用账户。使用此帐户,您无法将应用程序发布到 AppStore。
M
Muhammad Owais

我浪费了几个小时来解决这个问题,但它只是通过重新启动 MAC 来解决......


它对我来说很重要
我也是...相反,我通过重新启动 Xcode 解决了它
现在是 2022 年,这适用于最新的 XCode 和 MacOS
A
Alex Zavatone

就我而言,我丢失了钥匙串中的所有私钥,新的私钥已正确导入,但也没有显示私钥。唯一有帮助的是生成新的 CertificateSigningRequest


M
Michael Yang

在您更改了不是创建分发证书的原始 Mac 后,您将丢失私钥。只需删除原始证书并重新创建一个新的,这对我有用~


V
Vivek

当我尝试上传 iOS 版本来测试飞行时,出现了错误。

"Missing privacy key"

https://i.stack.imgur.com/xrCpi.png

只需 2 步即可修复此错误。

从 developer.apple.com 删除旧证书 从 Xcode 或 developer.apple.com 创建新证书

我的问题已经解决(我使用的是 Xcode 9.4.1)。

请检查,Xcode 创建了新证书。

https://i.stack.imgur.com/oaWb2.png


T
Travis M.

如果您正在创建自己的分发证书,而不是使用其他人的证书,那么这可能会有所帮助。

今天在这方面花了很多时间,从无法创建 SigningRequest 到生成分发证书以及没有将其附加到我在 KeyChain Access 中的私钥的问题。这些步骤帮助我解决了这个问题。

如果您仍然遇到问题,请撤销您当前的证书并重新开始。

创建新的签名请求

Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority 实际上会根据上下文了解您在启动它时当前选择的内容。只是为了确保您不会因一些随机选择而意外扭曲您的请求,请转到您的登录项目并选择 Apple Worldwide Developer 项目。然后启动上述请求并创建 CertificateSigningRequest.certSigningRequest 文件。

https://i.stack.imgur.com/LEgUh.png

转到 Apple Dev 门户,添加新的分发证书,上传您的 CertificateSigningRequest.certSigningRequest 文件并下载新创建的分发证书。要将分发证书导入您的钥匙串,而不是双击它,我建议打开您的钥匙串,转到“登录/证书”区域并将证书拖放到此处。

我有一个问题,我的证书会自动安装到系统区域,而不是我的私钥所在的登录区域,这导致我的密钥没有链接到新证书。


m
mjb

在 Menu > Visual Studio (mac) > Preferences > Publishing > Apple Developer Accounts > [Select your apple id] > View Details > Create Certificate

要删除未使用/无效的证书,请访问网站:https://developer.apple.com/account/resources/certificates/list

在那里删除任何不需要的证书

接下来是创建 App ID(标识符),转到网站:
https://developer.apple.com/account/resources/identifiers/list

接下来,转到网站以创建配置文件:
https://developer.apple.com/account/resources/profiles/add

使用证书与您的应用程序 ID 绑定。

接下来是下载配置文件:在您的 mac > 在菜单 > Visual Studio (mac) > Preferences > Publishing > Apple Developer Accounts > [选择您的 Apple id] > 查看详细信息 > 下载所有配置文件


Š
Štěpán

在 Xcode 未能创建新的分发证书后,我遇到了这种情况(“缺少私钥。”) - 发生了未知错误。

然后,我努力获取私钥或生成新证书。从 Xcode 的证书管理器中,我收到了一些奇怪的错误,例如“您输入的密码错误”。但它甚至没有要求我输入任何密码。

对我有帮助的是:

在 developer.apple.com 上撤销所有无效的分发证书 重新启动我的 Mac

之后,Xcode 能够创建新的分发证书,并且没有丢失任何私钥。

经验教训:重启你的 Mac 和你的 Windows 一样多;)


I
ISS

我在苹果的开发者网站上访问了该证书,下载后我打开了它。同样,在打开时,我有一个小窗口询问我是否要将证书添加到钥匙串。只需点击“添加”,“丢失私钥”错误就消失了。


P
Philipp Hofmann

我的问题是,无论出于何种原因,钥匙串访问中都缺少登录钥匙串。 Xcode 创建了一个新证书并将其添加到登录钥匙串中但无法使用它。重新启动计算机解决了我的问题。

https://i.stack.imgur.com/O8M5M.png


P
Priyanka

检查您是否使用登录来添加证书,如果您在左上角的系统中签入,那么我们将无法看到它。

因此,将 .cer 拖放到登录中,然后检查您是否能够获取私钥。


m
mfaani

只是为了对此有所了解。

从钥匙串中删除我的 p12 证书后。我从 Apple 开发者门户重新下载了自己的证书。

我只能下载证书。但是要签名,您也需要私钥。所以你要么:

从 Keychain 导出私钥和证书以获取它。

上传证书签名请求并生成新证书

该证书本身对签名没有任何价值。我的猜测是,私钥是在您“向证书颁发机构请求证书”时由钥匙串创建的,但在您添加其绑定证书之前不会显示给您。


D
Dharman

我是密钥的创建者,但密钥已附加到过期的证书上。

为了解决这个问题,我去了-> Xcode/Preferences/Accounts/"Account you used to archive"/Manage Certificates..

然后单击左下角带有“+”号的下拉菜单,然后选择您需要更新的证书类型(我的是 Apple Distribution)。

这更新了我的新证书,并附上了它的密钥。


那是创建一个新的证书问题是不同的
M
Menon Hasan

与 iOS 分发密钥的创建者联系并告诉导出证书和私钥,然后只需下载并双击它即可访问您的钥匙串。

https://i.stack.imgur.com/cZjdJ.png


M
Mechadroid

我假设您已切换设备并尝试为您的新设备创建新证书,

首先从开发者门户中恢复开发证书,

转到 xcode > 首选项 > 帐户 > 使用开发门户访问选择您的 Apple ID > 管理证书 > 单击团队帐户 > 单击小 + 按钮 > 单击 Apple 分发

去苹果开发者门户,你可以看到一个分发证书被创建了,

转到配置文件,使用新证书创建新配置文件。

下载>安装完成


B
Benjamin Zach

我可以通过更新 macOS 和 XCode 来解决这个问题。


这个答案与签署证书的私钥无关。