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
英文地址,請注明出處:http://en.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 …