如何将私钥添加到分发证书?

Posted

技术标签:

【中文标题】如何将私钥添加到分发证书?【英文标题】:How can I add private key to the distribution certificate? 【发布时间】:2013-05-09 22:12:44 【问题描述】:

好吧,我的开发者证书已与它的私钥相关联。工作正常。

我下载了经销商的 ios 配置文件,但显示未找到有效的签名身份。

所以我检查了我的证书,确切地说,我的开发人员证书与它的私钥相关联,而不是我的分发证书。如何将我的私钥链接/添加到此证书!?

这会解决“找不到有效的签名身份”的问题吗?

【问题讨论】:

【参考方案1】:

是的,您收到的错误意味着您的 Mac 上没有与您尝试用于签署应用程序的分发证书相关联的私钥。

有两种可能的解决方案,具体取决于请求分发证书的计算机是否可用。

如果请求分发证书的计算机可用(或某处有分发资产的备份)

    从生成分发资产的计算机中,打开 Xcode。 点击窗口,管理器。 展开团队部分。 选择您的团队,选择“iOS Distribution”类型的证书,点击导出并按照说明操作。 保存导出的文件并转到您的计算机。 重复步骤 1-3。 点击导入,选择之前导出的文件。

如果创建分发配置文件的计算机不再可访问(并且没有备份)

您必须撤销证书并创建一个新证书。

您可能需要让您的团队管理员或代理授予您一些权限才能生成分发证书。获得足够权限后,请按照以下步骤操作(截至 2013 年 5 月 15 日准确):

    进入这个网页:https://developer.apple.com/devcenter/ios/index.action 点击“会员中心”并输入您的 iOS 开发者凭据。 点击“证书、标识符和配置文件”。 点击“iOS 应用”部分下的“证书”。 展开左侧的证书部分,选择分发,然后单击您的分发证书。 点击撤消并按照说明操作。 单击加号以添加新证书。 选择“App Store and Ad Hoc”选项,然后点击继续。 按照网页中打印的步骤进行操作。这涉及在您的 Mac 上打开钥匙串应用程序并从那里生成证书签名请求。点击继续。 上传 .csr 文件并点击继续。 为分发生成证书。下载并双击它以将其集成到您的钥匙串中。

重新打开 Xcode 并检查您的项目配置,看看您现在是否可以选择“iPhone Distribution”证书(即它没有变灰)。

【讨论】:

我从“会员中心”下载了证书,我删除了旧证书并安装了新证书,但还是一样。在 Organizer 中,我可以看到 iOs 开发团队有一个正在验证的绿色勾号,但 iOS 发行版没有它!第 4 点中的说明是什么意思? 证书不够,还需要私钥。可以从生成分发证书的机器上导出证书+私钥吗? 组织者只给我展示了一个构建列表,没有团队菜单。认为这个答案已经过时了。 我想这个答案应该被删除,因为它不再相关 @andrewb 对我来说,我可以在这里做这些事情:developer.apple.com/account/resources/certificates/list【参考方案2】:

由于编写了现有答案,Xcode 的界面已更新,它们不再正确(特别是 单击窗口,组织者 // 展开团队部分 步骤)。现在导入现有证书的说明如下:

导出选定的证书

    选择 Xcode > 首选项。 点击窗口顶部的帐户。 选择您要查看的团队,然后单击查看详细信息。 按住 Control 并单击要在 Signing Identities 表中导出的证书,然后从弹出菜单中选择 Export。

    在“另存为”字段中输入文件名,在“密码”和“验证”字段中输入密码。该文件已加密并受密码保护。 单击保存。该文件将保存到您指定的位置,扩展名为 .p12。

Source (Apple's documentation)

要导入它,我发现 Xcode 的 let-me-help-you 菜单无法识别 .p12 文件。相反,我只是将它手动导入到 Keychain 中,然后 Xcode 构建并存档,没有任何抱怨。

【讨论】:

【参考方案3】:

Xcode 9 的界面已经更新,现在我解决问题的方法是:

    选择 Xcode > 首选项。 点击窗口顶部的帐户。 选择您要查看的团队 点击左下角的齿轮图标 ()。

    导出 Apple Id 和代码签名资产 在“另存为”字段中输入文件名并在“密码”和“验证”字段中输入密码后,您将看到这样的窗口

    点击齿轮图标 () -> 点击导入 -> 选择您在步骤 6 中导出的文件

【讨论】:

导出和重新导入对我有用。它解决了我在 Xcode Preference - Account 中的“缺少私钥”问题。但是,为什么导出/导入在这种情况下有帮助仍然是个谜? 通常,有几种解决方案适用于软件的各个阶段。第一个(由 Daniel Martin 编写)无法执行,因为相应的 UI 元素已被删除,第二个(由 andrewb 编写)可执行但没有解决问题,而这个终于解决了。也许明年,需要另一种解决方案......【参考方案4】:

这个网站一步一步解释你需要做什么Certificates, Identifiers & Profiles和你的问题

"Valid Signing identity not found"?

您需要用于使用配置文件签署代码库的私钥。 .如果您没有,那么您可以在 iOS 开发者门户上生成新的签名请求。

For Export:

Xcode -> Organizer,选择你的团队。 单击导出。 指定文件名和密码,然后单击保存。`

For Import:

Xcode -> Organizer,选择你的团队。 单击导入。 选择包含您的代码签名资产的文件。 输入文件的密码,然后单击“打开”。

【讨论】:

【参考方案5】:

对于开发者证书,您需要创建一个开发者 .mobileprovision 配置文件并将其安装到您的 XCode 中。如果您想使用临时分发配置文件分发应用程序,则需要在钥匙串中安装 AdHoc 分发证书和私钥。

如果您还没有创建证书,这里是steps to create 它。如果您团队中的某个人已经创建了它,请让他分享证书和私钥。如果该人不再在您的团队中,那么您可以从开发者帐户中撤消证书并创建新的。

【讨论】:

我已经创建了证书,并且我安装了我可以在我的钥匙串访问中看到它。在证书列表中,我看到了开发者之一,我可以在其中展开它并查看私钥,但我不能看到分发者。 好的。登录到您的开发帐户并创建临时分发(如果尚未创建)。如果已创建,只需让您的团队/公司中的相关人员与您共享证书和密钥。【参考方案6】:

“未找到有效的签名身份”这是因为您没有分发证书的私钥。

如果分发证书最初是在不同的 Mac 上创建的,您可能需要从该 Mac 导入此私钥。无法从您的配置门户下载此私钥。

当您将正确的私钥导入您的 mac 时,XCode 的管理器会将您已下载的分发配置文件识别为“有效配置文件”

但是,如果您无权访问创建这些配置文件的原始 Mac,您唯一的选择就是撤销配置文件。

【讨论】:

【参考方案7】:

因为 xcode5 组织者不再存在团队部分。 但粗体字是我的答案。 上帝感谢有另一个 mac 可以恢复和导入到有问题的 mac。 现在一切正常。

【讨论】:

【参考方案8】:

我所做的是,我从我的 Mac 电脑上创建了一个新的分发证书,并从这台 Mac 电脑上提供了签名身份,就是这样

【讨论】:

【参考方案9】:

您需要做的是创建一个证书类型 (iOS Distributionfrom)来自下面的链接

https://developer.apple.com/account/resources/certificates

完成后,将其下载到计算机上的钥匙串中。

第 2 步:转到下面的链接并创建个人资料

https://developer.apple.com/account/resources/profiles/list

在创建配置文件时,请确保为您的应用选择相同的包 ID。

然后下载你刚刚创建的配置文件

第 3 步:将您的应用推送到应用商店时,请确保选择手动签名。 然后选择你下载的配置文件并导入它,并选择你创建的证书

这是为我做的

【讨论】:

【参考方案10】:

在创建分发证书的同一台机器上出现此错误后,对我有用的是:

    打开 Xcode 设置 选择帐号 选择合适的团队 点击管理证书 点击 + 按钮 选择 Apple 发行版

这也为钥匙串添加了正确的证书(我以为我之前已经下载并手动添加了),然后 xcodebuild 很高兴。

【讨论】:

以上是关于如何将私钥添加到分发证书?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 iPhone 分发证书创建私钥?

未安装分发证书/私钥

如何将私钥证书 (.pfx)、公钥证书 (.cer) 上传到 Azure WebApp

拥有一份 Apple 分发证书,但未安装其私钥。联系此证书的创建者以获取私钥的副本

如何使用 Adhoc 分发作为团队管理员?

将私钥与 .net 中的 X509Certificate2 类关联