繁体   English   中英

Xcode ios 应用开发代码签名

[英]Xcode ios app development code signing

当我在我的 iphone 中运行我的应用程序时,我有这个警告:

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

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

就我而言,

1- 打开钥匙串访问

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

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

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

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

我也遇到了同样的错误, unable to build chain to self-signed root for signer...

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

我遇到了同样的问题,基本上就像在评论中发布的一样:

  • 在右上角的 Xcode / Preferences 中删除我的帐户。
  • 打开钥匙扣。 在左侧“我的证书”:删除 Mac 或 iPhone 等开发者证书。
  • 只是再次启动 Xcode 并创建一个新帐户,就像第一次启动 Xcode 时所做的那样。
  1. 将钥匙串访问中开发人员证书的信任设置更改为系统默认值
  2. 删除本地钥匙串中的所有证书
  3. 退出并重新启动 xcode
  4. 清洁
  5. 在设备上运行程序
  6. 当它询问时,输入您的钥匙串密码并单击始终信任

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

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

我只是想我会添加一个图像来澄清事情。 当我在钥匙串中闲逛时不小心更改了默认设置时遇到了这个问题。

识别不良证书:

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

在此处输入图片说明

  1. 扩大信托。 你会看到这样的事情:

在此处输入图片说明

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

修复错误的证书:

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

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

经过几天的努力寻找一致的方式,这里是解决方案:

Xcode 12.4

这似乎是一个黑客,但它的工作原理!

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

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

  3. 设置导出密码

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

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

  1. 删除所有帐户。

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

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

🎉它又开始工作了。

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

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

iOS 代码签名疑难解答

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

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

再一贴

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

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

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

证书弹出窗口

Xcode 12.4

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

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

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

  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. 打开查找器,转到位置 (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/阅读更多详细信息

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

我正在添加为我修复它的解决方案,并且已经在那个线程

这里的关键问题是根证书

导出并从登录/证书中删除钥匙串中名为“ Apple Worldwide Developer Relations Certification Authority ”的证书。

system/certificate执行相同的操作。

仅在系统/证书中导入一个“Apple Worldwide Developer Relations Certification Authority”。 我导入了过期日期设置为 2030 年(不是 2023 年)的那个。

您还可以从以下位置下载最新版本: https://www.apple.com/certificateauthority/AppleWWDRCAG3.cer

就这样。 但同样,请确保它在您的钥匙串的 SYSTEM 中,并且您的钥匙串的 SYSTEM 区域中只有一个根证书,而在 LOGIN 区域中没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM