【问题标题】:Codesign: unable to build chain to self-signed root for signer代码设计:无法为签名者建立自签名根的链
【发布时间】:2021-07-23 17:19:30
【问题描述】:

我在尝试打包 UE4 iOS 应用时遇到了一些奇怪的错误,Codesign 返回:

/usr/bin/codesign --force --sign D7B82F040B126A01B59DAAF4CE968801525B81F4 --entitlements /Users/louga31/UE4/Builds/QOY/D/UE4_Projects/App/Intermediate/ProjectFilesIOS/build/App.build/Shipping-iphoneos/App.build/App.app.xcent --timestamp=none /Users/louga31/UE4/Builds/QOY/D/UE4_Projects/App/Binaries/IOS/Payload/App.app     
Warning: unable to build chain to self-signed root for signer "Apple Distribution (H7N8851C17)"
/Users/louga31/UE4/Builds/QOY/D/UE4_Projects/App/Binaries/IOS/Payload/App.app: errSecInternalComponent

我看到其他人在 Stack Overflow 上提出了有关此问题的问题,但提供的解决方案均不适合我。 我已经尝试过的:

  • 锁定和解锁密钥访问
  • 信任证书
  • 更改所有应用的私钥安全性
  • Trust Worldwide Developer Relations 证书颁发机构证书(2023 年到期和 2030 年到期)
  • 删除所有密钥和证书并直接从 Xcode 生成一个

我尝试在 Mac 终端中运行相同的 codesign 命令,但没有成功。 我设法通过在终端中将 codesign 命令作为 sudo 运行来使其工作,所以我倾向于认为这是某个地方的权限问题(UE4 不会将 codesign 作为 sudo 运行,所以这并不能真正解决任何问题)

【问题讨论】:

  • 您是从 Xcode 构建的吗?你能打开 Report Navigator(Xcode 中的 Cmd+9),然后点击最新的失败构建条目吗?那是您拥有构建日志的地方;他们通常会确切地告诉您出了什么问题。检查日志是否有任何错误。
  • 我不是通过 Xcode 构建,而是通过 SSH 使用 UE4 构建。如果可以帮助您,我将完整的构建命令和输出添加到问题中
  • 我在通过 SSH 连接时遇到了同样的错误。请在此处查看我的问题描述developer.apple.com/forums/thread/690923#690923021。你找到解决办法了吗?
  • 我发布了我的修复作为解决方案,它很脏,但它有效

标签: ios unreal-engine4 codesign


【解决方案1】:

这是我对此的肮脏修复(我确信有更好的方法,但这个可行)。

Here是github补丁,需要在4.26分支上应用。 (未在 4.27 中测试)

您还需要将文件AppleWWDRCAG3.cer 放在Engine\Extras 中(您可以得到它here

此修复还允许您指定要与 UnrealBuildTool 一起使用的根证书,以防您需要使用自定义证书。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2021-05-05
    • 2021-05-31
    • 1970-01-01
    • 2020-10-08
    • 2015-08-19
    相关资源
    最近更新 更多