Xcode ios应用程序开发代码签名

Ela*_*thi 3 iphone xcode ios xcode9

当我将我的应用程序运行到我的iPhone时,我有这个警告:

unable to build chain to self-signed root for signer "".
Run Code Online (Sandbox Code Playgroud)

我的应用程序安装在iPhone但突然关闭.

小智 11

就我而言,

1- 打开钥匙串访问

2- 选择登录,然后单击证书

3- 双击 Apple Worldwide Developer Relations 证书颁发机构

4-打开信任部分,并从“始终信任”设置为“使用系统默认值”

5-清理构建文件夹并运行

  • 仅感谢这一点也解决了我的问题! (2认同)

Hon*_*ney 11

我看到其他答案并尝试删除我的中间钥匙串和根证书。但苹果不允许删除根证书,除非你处于恢复模式,而我不想尝试这样做。您可能也不必删除任何内容,因为该解决方案无需删除任何内容即可工作。

我只是想添加一张图片来澄清事情。当我在我的钥匙串中闲逛并意外更改了默认设置时,我遇到了这个问题。

识别不良证书:

  1. 从您的钥匙串中选择登录
  2. 从类别中选择证书
  3. 查找任何具有蓝色+之类的Apple证书
  4. 双击证书。你会看到它看起来像这样

在此输入图像描述

  1. 扩大信任。你会看到这样的东西:

在此输入图像描述

  1. 如果搞砸了,那么“使用此证书时”将设置为“始终信任”以及蓝色

修复错误的证书:

  1. 只需将其设置为“使用系统默认值”并关闭它即可。
  2. 你会看到一个弹出窗口。输入您的密码以更新设置。
  3. 关闭钥匙串。返回您的项目,清理并运行。问题应该已经消失了。
  4. 如果这不起作用,请返回“钥匙串”,仔细检查是否有任何其他 Apple 证书设置为“始终信任”,然后重复此过程。

解释

我不是 100% 确定,但我认为当您将 Apple 证书设置为“始终信任”时,可能会导致应用程序签名问题,因为它允许证书绕过标准信任链。

在应用程序签名的上下文中,信任链是指一系列互连的证书,它们形成从应用程序签名到受信任的根证书的安全路径。

仅 IIUC 根证书可以设置为“始终信任”。但即便如此,最好让系统为您解决它,即对于所有证书类型,您只需将其设置为“使用系统默认值”

根证书与中间证书

钥匙串会告诉您哪些是根证书。

证书类型


mat*_*phi 10

我也有同样的错误 unable to build chain to self-signed root for signer...

我的错误是我已将发行版/开发者证书的信任设置更改为always trust. 当我把它改回Use system Default它时,一切都奏效了。


Ste*_*nic 6

  1. 将钥匙串访问中开发人员证书的信任设置更改为系统默认值
  2. 删除本地钥匙串中的所有证书
  3. 退出并重新启动 xcode
  4. 干净的
  5. 在设备上运行程序
  6. 当它询问时,输入您的钥匙串密码并单击始终信任

问题可能是将您的证书设置为始终信任,这就是我遇到的问题。如果您收到此警告,阻止您在设备上运行应用程序,这应该可以解决所有问题。


Moj*_*ini 6

经过几天的努力寻找一致的方法,解决方案如下:

\n

Xcode 12.4

\n

这看起来像是一个黑客,但它确实有效!

\n
    \n
  1. 转到 Xcode首选项菜单 ( command+ ,),然后转到“帐户”选项卡

    \n
  2. \n
  3. 单击左下角的齿轮图标,然后导出 Apple ID 和代码签名资产... \n设置

    \n
  4. \n
  5. 设置导出密码

    \n
  6. \n
\n
\n

\xe2\x9a\xa0\xef\xb8\x8f 您将删除所有密码和配置文件!不要忘记您的密码!强烈建议写下您的密码。

\n
\n
\n

\xe2\x9b\x94\xef\xb8\x8f 此文件将包含您的所有帐户和配置文件。请务必妥善保管。

\n
\n
    \n
  1. 删除所有帐户。

    \n
  2. \n
  3. 构建并面对新的错误。

    \n
  4. \n
  5. 使用您的密码将它们导入回来。

    \n
  6. \n
\n

它又开始工作了。

\n


And*_*ndy 5

我有同样的问题,并且在评论中发布了bassicaly: - 在右上角的XCode/Preferences中删除我的帐户. - 打开钥匙串.在左侧"我的证书":删除Mac或iPhone等开发人员证书. - 再次启动XCode并创建一个新帐户,就像第一次启动XCode时所做的那样.


kau*_*hal 5

经过一天的努力,在论坛上找到了很多答案。我想出了适合我的解决方案。以下是修复步骤:

  1. 从苹果PKI官方网站下载以下证书https://www.apple.com/certificateauthority/
Root Certificate
  Apple Inc. Root
  Apple Root CA - G3 Root
Run Code Online (Sandbox Code Playgroud)
Intermediate Certificate
   Worldwide Developer Relations - G1 (Expiring 02/07/2023 21:48:47 UTC)
   Worldwide Developer Relations - G3 (Expiring 02/20/2030 00:00:00 UTC)
Run Code Online (Sandbox Code Playgroud)
  1. 下载特定于您的应用程序的所有证书和配置文件、扩展配置文件以进行开发和分发。
  2. 转到 Xcode 首选项菜单(命令+,),然后转到帐户选项卡。删除所有帐户
  3. 退出 Xcode
  4. 打开钥匙串并转到证书选项卡的登录部分
  5. 从钥匙链中删除所有根证书和中间证书、开发人员 ID 证书颁发机构。
  6. 删除所有应用程序特定的证书
  7. 打开查找器,转到位置 (shift+cmd + g) ~/Library/MobileDevice/Provisioning\ Profiles 并删除所有证书
  1. 重新启动钥匙串并转到证书选项卡的登录部分
  2. 将根证书拖放到钥匙串中(根证书将自动受信任,无需手动创建)
  3. 将中间证书拖放到钥匙串中
  4. 将应用程序特定证书 (.p12) 拖放到钥匙串
  1. 打开查找器,转到位置 (shift+cmd + g) ~/Library/MobileDevice/Provisioning\ Profiles 并添加应用程序特定的配置文件。您也可以选择在 Xcode 设置中使用 Apple 帐户登录并手动下载每个配置文件。
  2. 打开 Xcode 并清理导出数据 (Shift+ Alt+ cmd+ k),并使用任何设备构建它。

出现此问题的原因是苹果引入了新的根证书和中间证书。从https://developer.apple.com/support/wwdr-intermediate-certificate/阅读更多详细信息