UE5.5构建iOS失败但没有显式错误信息的问题

报错信息如下

UnrealBuildTool failed. See log for more details. (/Users/somebody/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-UnrealDemo-IOS-Shipping_2.txt)
AutomationException: UnrealBuildTool failed. See log for more details. (/Users/somebody/Library/Logs/Unreal Engine/LocalBuildLogs/UBA-UnrealDemo-IOS-Shipping_2.txt)at AutomationTool.CommandUtils.RunUBT(CommandEnvironment Env, FileReference UnrealBuildToolDll, String CommandLine) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/UBTUtils.cs:line 59at AutomationTool.UnrealBuild.BuildWithUBT(List`1 Targets, Dictionary`2 TargetToManifest, Boolean DisableXGE, Boolean AllCores, Boolean SkipBuild) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/UnrealBuild.cs:line 190at AutomationTool.UnrealBuild.Build(BuildAgenda InAgenda, Nullable`1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InAllCores, Nullable`1 InChangelistNumberOverride, Dictionary`2 InTargetToManifest, Boolean InSkipBuild) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/UnrealBuild.cs:line 600at AutomationScripts.Project.Build(BuildCommand Command, ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/Scripts/BuildProjectCommand.Automation.cs:line 232at BuildCookRun.DoBuildCookRun(ProjectParams Params) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/Scripts/BuildCookRun.Automation.cs:line 252at BuildCookRun.ExecuteBuild() in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/Scripts/BuildCookRun.Automation.cs:line 43at AutomationTool.BuildCommand.Execute() in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/BuildCommand.cs:line 372at AutomationTool.BuildCommand.ExecuteAsync() in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/BuildCommand.cs:line 381at AutomationTool.Automation.ExecuteAsync(List`1 CommandsToExecute, Dictionary`2 Commands) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/Automation.cs:line 284at AutomationTool.Automation.ExecuteAsync(List`1 CommandsToExecute, Dictionary`2 Commands) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/Automation.cs:line 308at AutomationTool.Automation.ProcessAsync(ParsedCommandLine AutomationToolCommandLine, StartupTraceListener StartupListener, HashSet`1 ScriptModuleAssemblies) in /Users/build/Build/++UE5/Sync/Engine/Saved/CsTools/Engine/Source/Programs/AutomationTool/AutomationUtils/Automation.cs:line 168
AutomationTool executed for 0h 3m 34s
AutomationTool exiting with ExitCode=139 (139)

去查看 UBA-UnrealDemo-IOS-Shipping_2.txt 这个文件呢,则没有发现有效的报错信息。
可以看到在编译途中就终止了,“戛然而止”,表现如下:

[194/204] Compile [arm64] UnrealDemo1.cpp
[195/204] Compile [arm64] UnrealDemo2.cpp
[196/204] Compile [arm64] UnrealDemo3.cpp
[197/204] Compile [arm64] UnrealDemo4.cpp
[198/204] Compile [arm64] UnrealDemo5.cpp
[199/204] Compile [arm64] UnrealDemo6.cpp

排查过程

  1. UBA-UnrealDemo-IOS-Shipping_2.txt 这个文件没有报错信息,不代表就没有问题,反而说明了另外一个问题:编译器没有正确抛异常。
  2. 回到最开始的报错信息,这里有一个错误码是有效的信息:AutomationTool exiting with ExitCode=139 (139)。直接让ai给我们分析一下这个错误码是什么意思。
    AI回复如下
虚幻引擎构建 IPA 时出现 AutomationTool exiting with ExitCode=139 (139) 错误通常表示​​进程因内存访问冲突(段错误)被操作系统强制终止​​。此错误在 macOS/Linux 系统中常见(对应 SIGSEGV 信号),可能由资源不足、文件损坏或环境问题引发。

AI还给出了一些解决方案,比如检查机器内存跟硬盘条件等,这里感觉不太像,因为我的机器配置还行,运行时的状态也还不错。虽然解决方案无用,但是很好的印证了我们上述的猜想:编译器没有正确抛出异常,应该是UBT直接挂掉了,导致编译到一半就停了,产生了这样的现象。
3. 看以往UE版本的构建日志,从UE5.4开始,UBA-UnrealDemo-IOS-Shipping_2.txt 这个文件前缀加上了UBA。这个其实是有点疑问的,但是还没有去理它。
4. 我根据错误码信息来搜,已经快速得到了一个直接有用的经验:https://community.cesium.com/t/issue-problems-with-cesium-and-ue-5-5-3-on-macos-ios/38984/2
5. 再来查下UBA的相关信息,一下子就有了很多内容了。虚幻论坛很多都有反馈UBA导致的编译报错或崩溃问题。虚幻文档自己也写着,UBA only supports Windows in Unreal Engine 5.5. Support for Mac and Linux are planned for a future release.:https://dev.epicgames.com/documentation/en-us/unreal-engine/horde-unreal-build-accelerator-and-remote-compilation-tutorial-for-unreal-engine

结合上述的信息,关闭UBA应该是有效的,至少关闭UBA不至于引入什么额外的坏影响。那就大胆尝试,验证关闭UBA后可以正常构建iOS了。

解决方案

关闭UBA,以下两选一都可以。

  1. 根据虚幻官方的文档,通过配置文件来实现: https://dev.epicgames.com/documentation/zh-cn/unreal-engine/build-configuration-for-unreal-engine
  2. 自己改虚幻引擎中UBA的默认配置,重编UBT即可,文件为: Engine/Source/Programs/UnrealBuildTool/Configuration/BuildConfiguration.cs

真正的原因

我还真不知道…留个坑,要是以后知道了就回来写。

个人猜测耗时开启UBA分布式编译之后,UBA与Xcode之间的兼容性冲突是高度可能的原因。

  1. UBA在UE5.5中仍属于​​Beta功能​​,且官方文档明确其​​对macOS/Linux的支持尚未完善
  2. UE5.5官方release notes写的是推荐用Xcode 15.4+​​,我们的机器上用的16.2,可能UBA不兼容,导致UBT崩溃。因为这个情况在多台电脑上都遇到,所以不是偶然的问题。

其他参考资料

https://forums.unrealengine.com/t/compiler-crashes-while-compiling-engine/2546500/4
https://forums.unrealengine.com/t/solution-for-ue-5-5-1-new-c-project-compilation-issues-attempted-to-read-or-write-protected-memory/2298265

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/909681.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/909681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈 Unity XR:从混战到统一,OpenXR 的演进与现实困境

一.引言 在 XR(扩展现实)技术日渐普及的今天,Unity 已成为开发 VR、AR 和 MR 应用的主流平台。然而在这个生态蓬勃发展的背后,XR 的接口标准也经历了混乱到统一的演进过程。从早期的厂商割据,到 Unity 的初步抽象&…

Python基础教学:航天工程领域的精确计算和金融领域的精确计算,分别采用的小数保留位数的方法有哪些?有什么区别?-由Deepseek产生

在Python中处理航天工程和金融领域的精确计算时,虽然都强调精度,但因目标需求、误差容忍度和计算性质不同,其小数保留位数的方法和策略存在显著差异。以下是关键方法和区别分析: 一、航天工程领域 核心需求: 物理世界…

机器人玩具:成年人的心灵游乐场与未来前哨

当提及“机器人玩具 ”,许多人脑海中仍会浮现出孩童在游戏垫上摆弄塑料小人的画面。然而,时代已悄然转变——那些曾被视为童年专属的机械伙伴,如今正被越来越多的成年人郑重捧在手中。这不是一种幼稚的退行,而是一场关于创造力、情…

Spring Cloud LoadBalancer深度解析:官方负载均衡方案迁移指南与避坑实践

引言:为什么LoadBalancer正在取代Ribbon? “Ribbon已进入维护模式” —— Spring官方公告 当你的Spring Boot升级到3.x版本,Ribbon的依赖项将无法通过编译。作为Spring Cloud 官方钦定的替代方案,LoadBalancer凭借: ✅…

暴雨服务器成功中标洪湖市政府框架采购项目

近日,在洪湖市政府 2025 年度行政事业单位服务器封闭式框架协议采购项目中,暴雨服务器凭借其卓越的性能、优质的服务以及合理的价格,成功脱颖而出,赢得了该项目的中标资格。这一成果不仅标志着暴雨服务器在政府领域的认可度进一步…

C# 多线程按顺序执行之ManualResetEvent

ManualResetEvent被用于在** 两个或多个线程间** 进行线程信号发送。 多个线程可以通过调用ManualResetEvent对象的WaitOne方法进入等待或阻塞状态。当控制线程调用Set()方法,所有等待线程将恢复并继续执行。 以下是使用ManualResetEvent的例子,确保多线…

SQL里的正则

1393-capital-gainloss https://leetcode.com/problems/capital-gainloss/description/ IDEA报红但是能执行! -- 用全部卖出的减去全部买入的 with b as ( select stock_name, sum(price) AS total_buy_price from Stocks where operation Buygroup by stock_na…

计算机求职提前批/求职什么时候投递合适

前言 大家秋招或者春招,可能一直在网上冲浪,看到一些人在鼓吹说提前批开始,秋招开始。必须要赶紧找工作了,再不找就失业了等等。 然后,到自己就开始焦虑,感觉别人都在投简历,自己不投感觉很吃亏…

八种数据结构简介

目录 1.1 数据结构概述 1.2 数据结构的分类 1.2.1 逻辑结构 1)集合 2)线性结构 3)树形结构 4)图形结构 1.2.2 物理结构 1)顺序存储 2)链式存储 3)散列存储 4)索引存储 …

破壁虚实的情感科技革命:元晟定义AI陪伴机器人个性化新纪元

在人工智能席卷全球的浪潮中,广东中山一家名为元晟传媒科技的企业正悄然改写情感陪伴产业的游戏规则。作为广东元伴智能科技(下称“元伴智能”)的战略级下属机构,中山元晟传媒科技凭借独特的“技术场景流量”三角模型,…

leetcode_455 分饼干

1. 题意 给一堆饼干,和一群小朋友。饼干有大小,小朋友有胃口值;小朋友不吃比自己胃口小的饼干,问这些饼干能满足多少小朋友食用。 2. 题解 排序贪心 优先用小饼干满足胃口小的小朋友,这样大饼干就能留给胃口大的小朋…

使用 C# 源生成器(Source Generators)进行高效开发:增强 Blazor 及其他功能

.NET 中源生成器的引入彻底改变了我们的开发方式,它消除了动态逻辑,并在编译时生成静态代码。这不仅提高了应用程序的性能,还提升了开发人员的生产力和代码质量。 如果您正在使用Blazor(WebAssembly 或服务器)或构建需…

word如何插入高清晰的matlab绘图

emf矢量图 在matlab中画好的图另存为emf格式,保存到本地,然后在word中选择插图图片,注意不要复制粘贴。 亲测好用!

解锁 ChatGPT 超能力:全新「记忆」功能深度解析!

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

低压电涌保护:构筑电气设备的安全防线

在现代电力系统中,低压电涌保护扮演着至关重要的角色。雷电和电力系统中的瞬态过电压,是威胁电气设备安全运行的潜在风险。低压电涌保护器(SPD)作为一种专门设计的防护装置,能够有效地抑制这些电涌,确保电气…

GitLab多人协作MR流程规范模版(merge)

以下是一个适用于 GitLab 多人协作的 MR 流程规范模板,涵盖分支策略、MR 创建流程、冲突处理、审查要求和 CI/CD 设置。可以直接复制到团队 Wiki 或文档中使用。 📘 一、分支策略 main ← 线上生产分支,仅从 release 合并 dev …

分布式系统全链路监控之一:分布式全链路监控基础概念和OpenTelemetry

文章目录 前言什么是OpenTelemetry核心概念可观测性可靠性和指标理解分布式链路追踪日志跨度链路 上下文传播上下文传播 信号日志OTel日志在 OTel Collector 中的 OTel日志应用程序的OTel日志 结构化、非结构化和半结构化日志结构化日志非结构化日志半结构化日志 OTel日志组件 …

C# 正方形外接圆的面积(Area of a Circumscribed Circle of a Square)

给定正方形的边长,求其外接圆的面积。 示例: 输入:a 6 输出:外接圆的面积为:56.55 输入:a 4 输出:外接圆的面积为:25.13 正方形的四条边相等,四个角均为90度。圆…

ROS学习话题通信之Python实现

与上一篇C实现同理 下面给出相关的Python实现代码 关于py文件的 talker:(demo01_talker_str_py import rclpy from rclpy.node import Node from std_msgs.msg import Stringclass Talker(Node):def __init__(self):super().__init__("talker_node_py")…

Spring MVC 入门案例:从代码到原理的深度剖析

一、引言 Spring MVC 是一种基于 Java 的实现了 MVC 设计模式的请求驱动类型的轻量级 Web 框架,它为开发 Web 应用提供了强大而灵活的解决方案。本文将通过一个简单的 Spring MVC 入门案例,详细介绍其工作流程,帮助读者深入理解 Spring MVC …