【问题标题】:Xcode ios app development code signingXcode ios 应用开发代码签名
【发布时间】:2018-04-28 16:17:09
【问题描述】:

当我在我的 iPhone 上运行我的应用程序时,我会收到以下警告:

unable to build chain to self-signed root for signer "".

我的应用程序安装在 iphone 中但突然关闭。

【问题讨论】:

  • forums.developer.apple.com/thread/86161I solved my problem by: - Removing all account information from Xcode and quitting Xcode. - Open Keychain Access and delete all my certificates, as well as all Apple root and intermediate certificates. - Manually resintall all Apple root and intermediate certificates. - Relaunch Xcode and open Preferences > Accounts. Sign in to dev account, and select Download Manual Profiles.
  • forums.developer.apple.com/thread/86161 这可能会有所帮助
  • 我的问题解决了。我重置了我的钥匙串访问证书。
  • 进入 Xcode 并从 Preferences 中删除您的帐户 转到 ~/Library/MobileDevice/Provisioning Profiles 中的 finder 并删除 Go 中的文件进入钥匙串并删除任何提及 Mac 开发人员、iOS 开发人员等的个人证书将您的帐户重新添加到 Xcode 并选择撤销现有证书您必须重新生成任何配置文件,因为以前的配置文件与现在已撤销的证书相关联并且现在无效而且,不要手动信任开发人员证书...这完全破坏了代码签名,因为 codesign 不会信任它。
  • TODO:不要手动信任开发人员证书...这会完全破坏代码签名,因为 codesign 不会信任它。我用这个解决问题~

标签: ios iphone xcode xcode9


【解决方案1】:

就我而言,

1- 打开钥匙串访问

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

3- 双击 Apple 全球开发者关系证书颁发机构

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

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

【讨论】:

  • 感谢这个也解决了我的问题!
  • 基本上,如果任何根证书或中间证书旁边有一个 +,则表示它们已设置为“始终信任”,而这可能正是您所使用的需要设置为“使用系统默认值”
  • 非常感谢,对我有用,寻找解决方案花了我 3 天时间
【解决方案2】:

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

我的错误是我将分发/开发人员证书的信任设置更改为always trust。当我将其改回Use system Default 时,一切正常。

【讨论】:

  • 听起来很愚蠢,但它确实有效!谢谢!
【解决方案3】:

我遇到了同样的问题,基本上确实喜欢在评论中发布:

  • 在右上角的 Xcode / Preferences 中删除我的帐户。
  • 打开钥匙串。左侧“我的证书”:删除 Mac 或 iPhone 等开发者证书。
  • 只是再次启动 Xcode 并像第一次启动 Xcode 时那样创建一个新帐户。

【讨论】:

  • 这对我来说非常有用,另外一个注意事项:不要忘记在执行此操作之后和尝试重建之前清理您的构建。
【解决方案4】:
  1. 将钥匙串访问中开发者证书的信任设置更改为系统默认设置
  2. 删除本地钥匙串中的所有证书
  3. 退出并重新启动 xcode
  4. 干净
  5. 在设备上运行程序
  6. 当它询问时,输入您的钥匙串密码并单击始终信任

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

【讨论】:

    【解决方案5】:

    我看到了其他答案并试图删除我的中间钥匙串和根证书。但是 Apple 不允许删除根证书,除非您处于恢复模式并且我不想尝试。可能您也不必删除任何内容,因为此解决方案在没有它的情况下也有效。

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

    识别坏证书:

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

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

    1. 如果出现问题,则“使用此证书时”设置为“始终信任”以及蓝色

    修复坏证书:

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

    【讨论】:

    • 非常感谢。我确实尝试了所有方法,但这是唯一有效的方法。将我的证书从“始终信任”设置为“默认”后,它显示为受信任的证书并且工作完美。
    【解决方案6】:

    经过几天尝试找到一致的方法,这里是解决方案:

    Xcode 12.4

    这似乎是一个 hack,但它确实有效!

    1. 转到 Xcode Preferences 菜单(command+,),然后转到 Accounts 选项卡

    2. 单击左下角的齿轮图标并导出 Apple ID 和代码签名资产...

    3. 设置导出密码

    ⚠️ 您将删除所有密码和个人资料!不要忘记密码!强烈建议您记下您的密码。

    ⛔️ 此文件将包含您的所有帐户和个人资料。确保非常安全。

    1. 删除所有帐户。

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

    3. 使用您的密码将它们导入回来。

    ? 它又开始工作了。

    【讨论】:

      【解决方案7】:

      在此处下载更新的证书: https://developer.apple.com/support/expiration/

      【讨论】:

      【解决方案8】:

      Xcode 12.4

      xcode -> 首选项 -> 账户 -> 选择账户 -> 管理证书 -> 点击弹窗左下角的+图标 -> ios开发

      然后您将看到创建了一个新证书。 现在您可以运行您的应用了。

      【讨论】:

        【解决方案9】:

        在论坛上与许多答案苦苦挣扎一天之后。我想出了适合我的解决方案。以下是修复步骤:

        1. 从苹果PKI官网下载以下证书https://www.apple.com/certificateauthority/
        Root Certificate
          Apple Inc. Root
          Apple Root CA - G3 Root
        
        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)
        
        1. 下载特定于您的应用的所有证书和配置文件、扩展配置文件以进行开发和分发。
        2. 转到 Xcode Preferences 菜单(command+,),然后是 Accounts 选项卡。删除所有帐号
        3. 退出 Xcode
        4. 打开钥匙串并转到证书选项卡的登录部分
        5. 从密钥链中删除所有根证书和中间证书、开发者 ID 证书颁发机构。
        6. 删除所有应用特定证书
        7. 打开 finder,转到位置 (shift+cmd + g) ~/Library/MobileDevice/Provisioning\ Profiles 并删除所有证书
        1. 重新启动钥匙串并转到证书选项卡的登录部分
        2. 将根证书拖放到钥匙串(根证书将被自动信任,不要手动创建)
        3. 将中间证书拖放到钥匙串中
        4. 将应用程序特定证书 (.p12) 拖放到钥匙串中
        1. 打开 finder,转到位置 (shift+cmd + g) ~/Library/MobileDevice/Provisioning\ Profiles 并添加您的应用特定配置文件。或者,您可以在 Xcode 设置中使用苹果帐户登录并手动下载每个配置文件。
        2. 打开 Xcode 并清理派生数据 (Shift+ Alt+ cmd+ k),并使用任何设备构建它。

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

        【讨论】:

        • 在尝试了很多东西之后,这终于对我有用了,谢谢@kaushal。
        【解决方案10】:

        如果您能够在调试模式下安装应用程序,那么您使用的是分发证书而不是开发证书,但安装完成后它会自动关闭。

        【讨论】:

          【解决方案11】:

          解决 IOS 代码设计问题的方法之一是遵循以下文档。

          iOS Code Signing Troubleshooting

          并运行以下命令以了解确切的问题

          spctl -a -t exec -vv <app-path>
          

          更多提示

          更改系统中的任何内容后,请务必清理并构建您的项目,以了解解决方案是否成功应用。

          【讨论】:

            【解决方案12】:

            同样重要的是要注意,您尝试部署到的物理设备必须列在该配置文件的允许设备列表中 -> 您可以在从您的证书信息弹出的工具提示中看到这一点 ->您要确保您的设备列在“设备”部分。

            您可以在苹果开发者门户网站上创建配置文件时添加/删除设备。

            Cert popup

            【讨论】:

              【解决方案13】:

              对我来说,只需在 Xcode 中执行 Product &gt; Clean Build Folder 就足以解决问题。

              【讨论】:

                猜你喜欢
                • 2012-06-15
                • 1970-01-01
                • 2015-05-24
                • 1970-01-01
                • 2011-12-09
                • 1970-01-01
                • 1970-01-01
                • 2013-02-15
                • 2011-07-04
                相关资源
                最近更新 更多