找不到“iOS Distribution”签名证书

102

我正在尝试使用客户的证书对应用程序进行签名。 我已从客户那里收到了以下文件

enter image description here

我尝试安装ios_distribution证书和密钥(.p12)。 同样,我已经安装了预配配置文件。 现在,当我尝试使用预配配置文件签名应用程序时,它确实显示在下拉菜单中,但我收到以下错误:

No "iOS Distribution" signing certificate matching team ID "7S977Lxxx" with a private key was found

输入图像描述

我该如何解决这个问题?任何帮助都将不胜感激。


请检查您的应用程序包标识符。它是否与苹果开发者帐户的AppID标识符匹配? - Brijesh Shiroya
@BrijeshShiroya 是的。一开始它是不同的,然后它向我显示了错误。后来我将其更改为证书中提到的那个。 - user3034944
对我来说,关键是选择复选框:“自动管理签名”。 - mfaani
2
我选择了并取消了自动管理签名,然后它就起作用了。 - John Franke
@JohnOttenlips 这个自动签名选项在哪里? - June Wang
显示剩余3条评论
13个回答

75

我曾经遇到过相同的问题,照着给出的所有解决方案去尝试了,但都没有起作用。但后来我发现是自己犯了一个愚蠢的错误。我忘记在构建设置选项卡下把代码签名身份从iOS Developer改成iOS Distribution。请确保你在那里选择了“iOS Distribution”。


6
如果你正在处理传统应用程序,这就是答案。此外,选择“apple”而不是“ios”,因为那是新的跨平台风格。 - CGuess
1
@CGuess的建议与Hasan的答案相结合起来很有帮助。将身份设置为“Apple Distribution”而不是“iOS Distribution”即可解决问题。 - Mohammed Atif
2
我认为Xcode在某些时候会自动更改这个,可能是一个bug,因为我从来没有更改过它,但遇到了同样的问题。我觉得要创建一百万个傀儡账户来点赞这个。 - Kendall Helmstetter Gelner

37

您需要在Keychain中拥有签名证书的私钥和公钥。您是使用同一台Mac(Keychain)创建证书的吗?

解决方法#1:

  • 从Apple开发人员门户撤销签名证书(重置)
  • 在同一台Mac(Keychain)上重新创建签名证书。然后,您将拥有用于签名证书的私钥!

解决方法#2:

  • 从原始xCode导出签名标识
  • 在您的xCode上导入签名

苹果文档:https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html


@green 你可以在苹果开发者门户网站上撤销签名证书。但是我不确定我应该导出什么以及在哪里导出。 - jaycee
2
我不得不重新启动XCode才能修复将我的配置文件与签名证书相关联的问题。 - Jaggler3

26

在此输入图片描述

解决步骤:

  1. 取消“自动管理签名”选项。

  2. 在“签名(发布)”部分选择“配置文件”。

  3. 不会显示任何签名证书的错误信息。

  4. 然后在错误信息下面有一个“管理证书”按钮。点击该按钮。

在此输入图片描述

  1. 会出现这个窗口。 点击“+”号,然后点击“iOS Distribution”。 xcode将为您的发布证书创建私钥,从而消除错误。

2
这应该是最好的答案。 - Joe Elia
为什么取消勾选“自动管理签名”是必要的?Xcode不会自动管理吗? - Boon

19

尝试了上述解决方案,但都没有成功……重新启动我的Mac解决了这个问题。


4
重启 Xcode 后未能正常工作,于是我重启了我的 Mac,然后它就可以使用了。谢谢。这个想法没有出现在我脑海里。 - Shyam
1
苹果硬件,苹果软件,苹果远程服务。唉。 - Andy Weinstein
2
哈哈,谢谢伙计。我试过其他方法,但这个方法有效。 - Ravi

3

我只是进入了我的构建目标的"签名和能力"页面,没有采取任何进一步的行动,然后下一次构建就成功了。

似乎仅仅访问该页面就更新了签名证书。


2
对我们来说,问题在于我们的苹果开发者计划会员资格已过期。

2
苹果更新了他们的协议,所以我不得不:
- 前往苹果连接 - 接受协议 - 切换自动管理签名的开关

1
前往 Xcode -> 首选项 并导入配置文件 在此输入图片描述

3
谢谢回答。但是当我尝试导入开发者账户选项时,它会显示我的文件夹中的证书,但它们全部都是灰色的。 - user3034944
1
这对我有帮助。在我的情况下,我只需要在Xcode的“首选项”>“账户”选项卡中重新登录,然后点击刷新证书的按钮。 - MrColes
@MrColes 刷新按钮在哪里? - Nathan B

1

当在macOS 10.14.x Mojave上运行Xcode 11.3时,我遇到了“无签名证书”的错误。(但是在发布Xcode 12之后。)

我还使用了Fastlane。我的解决方法是在运行Match时将generate_apple_certs设置为false。这似乎生成了向后兼容Xcode 11.3的签名证书。

Match文档 - https://docs.fastlane.tools/actions/match/

这是我的Fastfile的相关部分:

platform :ios do
  lane :certs do
    force = false
    match(type: "development", generate_apple_certs: false, force: force, app_identifier: "your.app.identifier.dev")
    match(type: "adhoc",       generate_apple_certs: false, force: force, app_identifier: "your.app.identifier.beta")
    match(type: "appstore",    generate_apple_certs: false, force: force, app_identifier: "your.app.identifier")
  end

  ...

我使用的是11.3版本,但仍然遇到了一个问题。有一个应用程序在几天内运行正常,但现在另一个应用程序无法工作。我已经尝试了这里提供的所有建议,但目前为止没有任何进展。我甚至从钥匙串中删除了所有证书,并重新创建,但依然无济于事。每当我更换到不同的机器时,我总是会遇到这个问题。 - becker

0

如果您确定在您的配置文件中包含了证书,但仍然遇到此问题,请尝试以下步骤:

  • 关闭您的 Mac 的互联网访问。

  • 勾选自动管理签名。

  • 取消勾选自动管理签名。

  • 打开您的 Mac 的互联网访问。

错误应该会消失。

步骤说明:

有时 Xcode 无法自动同步设置。以上步骤可以手动更新它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接