随着苹果引入M1处理器,从2021年开始,Mac都是使用与iOS设备相同的ARM64架构制造的。与此同时,基于Intel的上一代Mac使用x86-64架构。
尽管苹果提供了名为 Rosetta2 的指令转换程序来支持旧版应用程序,但 Apple Arcade 需要开发人员为游戏提供单个通用二进制文件,并且明确支持这两种架构。这将确保在两代硬件上尽可能实现最佳的性能和稳定性。
本页面提供了以下资源,用于利用此级别的支持来构建 虚幻引擎(UE)项目。
- 有关虚幻引擎与这两种架构的兼容信息。
- 有关如何分别支持这两种架构的说明。
- 有关如何构建支持这两种架构的通用二进制文件的说明。
先决条件
本页面上的说明建立在你使用macOS上运行的Xcode来构建项目的假设之上。你应该先熟悉虚幻自动化工具(Unreal Automation Tool) (UAT) 和 BuildCookRun 命令,然后再继续。
兼容性说明
虚幻编辑器
从2021年年底开始,虚幻编辑器(Unreal Editor) 不支持M1 Mac和后续版本使用的ARM64架构。它将改为依赖于Rosetta2转换程序。
虚幻引擎的未来版本将引入对M1 Mac的直接支持,但目前,你在M1 Mac和后续版本上运行虚幻编辑器时,预计性能会受到影响。
虚幻引擎项目
尽管虚幻编辑器目前使用Rosetta2运行,但虚幻引擎可以为支持ARM64的项目输出打包版本。
为ARM64和x86-64创建二进制文件
创建单独的二进制文件
要为每种架构构建二进制文件,你需要使用虚幻自动化工具的BuildCookRun命令来启动构建并设置目标架构。
首先,在命令行中找到虚幻引擎的安装目录:
cd /Users/Current.User/Epic\Games/UE4.27
然后,使用 BuildCookRun 参数执行 RunUAT.sh 以启动构建:
Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project=MyProject -platform=Mac -architecture=arm64 -build -cook -stage -deploy
将 -architecture= 命令添加到 BuildCookRun,将指定你要为哪种架构构建。
例如,以下命令将为ARM64创建构建:
-architecture=arm64
而以下命令将为x86构建:
-architecture=x86_64
你首次为每种架构构建项目时,耗时可能比平常更久。此后,UAT会缓存烘焙的数据,后续构建将更快。
你可以构建同时支持x86-64和ARM64架构的项目,方法是分别编译二进制文件,然后将带有这些二进制文件的构建相应发布到不同的机器。但是,你需要为Apple Arcade创建合并的通用二进制文件,而且使用通用二进制文件对于总体发布也更方便。
使用UAT创建通用二进制文件
若要使用通用二进制文件构建项目,请在 BuildCookRun 中将以下内容用作你的架构:
-specifiedarchitecture=arm64+x86_64
这将构建同时支持ARM64和x86-64架构的项目。你可以将这些构建发布到任一类型的设备,该设备会将相应的二进制文件自动用于其架构。