"Warning: unable to build chain to self-signed root for signer" Xcode 9.2 中的警告

"Warning: unable to build chain to self-signed root for signer" warning in Xcode 9.2

我正在尝试将 Xcode 项目迁移到另一台计算机。它给了我警告 "Warning: unable to build chain to self-signed root for signer" 并且当它运行时它立即崩溃,类似于堆栈溢出中显示的内容:

App working on simulator but not on iPhone( dyld`__abort_with_payload dyld`_dyld_start)

我的问题似乎与此处 Apple 开发者论坛上描述的问题类似: https://forums.developer.apple.com/thread/86161

并且类似于此 Stack Overflow 中描述的内容:

除了删除证书并重新添加证书的建议外,重新添加我的帐户并重新启动似乎没有帮助。我已经第二次删除了我的开发者证书,现在我没有看到它回来了,而且我不知道如何取回它,因为我的开发门户似乎没有下载它的地方像以前一样。

我也试过几次删除派生数据文件夹。

e:我确定这台计算机上的任何项目都会导致相同的崩溃和警告。

几天来我一直面临同样的问题。最后我通过从钥匙链访问更改我的根 CA 解决了它。 在系统/登录密钥链中查看。哪个证书颁发机构被用作您的个人配置文件证书的签名者。输入有效的 CA 证书,一切顺利! 希望能帮助到你。 再见!

我遇到了同样的问题并通过以下步骤解决了:

  1. 打开钥匙串访问
  2. Select 登录,然后单击证书
  3. 双击 Apple Worldwide Developer Relations Certificate Authority
  4. 打开信任部分,并从“始终信任”设置为“使用系统默认值”
  5. 清理构建文件夹并运行

现在回答为时已晚,但如果有人仍在该线程上寻找解决方案 --

如果您是第一次安装证书或安装在另一台机器上创建的证书,就会发生这种情况

在您的 Xcode 项目中,转到签名功能,输入正确的包标识符,禁用自动签名,select 适当的配置文件/导入/下载配置文件

然后您会在配置文件下方找到信任修复选项,点击它点击信任输入您的登录凭据

这将创建并安装以下证书

@waaheeda 的回答让我找到了解决这个问题的正确方向。

我的存储库中有一个钥匙串,用于在我的 CI 上签名。更新我的 iOS 企业分发证书和配置文件并相应地更新钥匙串后,我的 CI 签名停止工作。代码签名在我自己的机器上本地工作。

我突然发现 this 并且发现这部分特别有趣:

Enterprise iOS Distribution Certificates generated after September 2, 2020 require the new intermediate certificate installed on any machines that will be code signing.

因此,我在 Keychain Access 的本地“登录”钥匙串中找到了“Apple Worldwide Developer Relations Intermediate Certificate Expiration”,并将其添加到我的存储库中的钥匙串中,现在似乎已经修复了签名(并且希望到 2030 年):

如果 none 其他解决方案有效,请尝试将中间签名证书添加到您的系统钥匙串。我在尝试手动创建供应 profile/certificates 时发现了这一点,因为没有其他任何工作 - 来自 Apple Developer 平台上新供应配置文件流程的创建新证书步骤:

To use your certificates, you must have the intermediate signing certificate in your system keychain. This is automatically installed by Xcode. However, if you need to reinstall the intermediate signing certificate click the link below: Worldwide Developer Relations Certificate Authority (Expiring 02/07/2023) Worldwide Developer Relations Certificate Authority (Expiring 02/20/2030)

下载这两个文件并双击自动添加到系统钥匙串后,xcode中的自动配置文件开始工作(我不需要完成手动配置文件过程,但是那是我找到链接的地方)

我可以通过从 here 下载新证书并安装来解决问题。 查看 https://developer.apple.com/de/support/expiration/ 了解更多详情。

none 其中实际上对我有用。我不得不删除派生数据删除所有证书并重新安装它们清理缓存并且必须重新安装 pod 文件.折腾了几个小时,终于找到了合适的解决方案。

1.change 证书信任:“始终信任”==>“使用系统默认值”

2.change“代码设计”命令 ==>“sudo 代码设计”命令

3.change登录和系统项信任中的“Apple Worldwide Developer Relations Certificate Authority”证书:“Always Trust”==>“Use System Defaults”

在命令行中使用 codesign 命令时对我有用

在我的情况下,错误仅在我从系统和登录钥匙串中删除 2023 年到期的 Apple Worldwide Developer Relations Certification Authority 并导入另一个有效期至 2030 年的证书后才得到解决。似乎 codesign当两者都出现在钥匙串中时,我选错了。

在 Xcode 13.1 上尝试存档我的应​​用程序时收到此错误,尽管它在模拟器上构建良好。我不需要对钥匙串中的证书进行任何更改,只需 清理构建文件夹 对我有用。

  1. 打开“产品”菜单
  2. Select“清理构建文件夹”
  3. 构建/归档您的应用程序

我看到其他一些答案提到了他们拥有哪些证书,所以我只想补充一点,我也有 2030 年“Apple 全球开发者关系认证机构”证书,而旧证书仍在我的钥匙串中还有,我可能需要在某个时候删除它。

在您创建证书的机器上

  1. 打开钥匙串
  2. 寻找“Apple Worldwide Developer Relations Certificate Authority”
  3. 查看“过期”列并检查 apple.com/CertificateAuthority 以查看哪个具有相同的过期时间

在你的ci

  1. 将此证书安装到您的系统钥匙串

    一个。通过快车道

    import_certificate(
      certificate_path: "~/Downloads/AppleWWDRCAG3.cer"
    )
    

    b。通过 cli

    sudo security import ~/Downloads/AppleWWDRCAG3.cer \
    -k /Library/Keychains/System.keychain \
    -T /usr/bin/codesign \
    -T /usr/bin/security \
    -T /usr/bin/productbuild
    

除了其他答案之外,请确保如果您被 sudo 到 root,请在尝试协同签名之前退出,以便您以登录用户身份进行签名。当我忘记我是 运行 作为 root 时,我的代码设计失败了。