为Apple Arcade支持ARM64和通用二进制文件

Apple Arcade需要支持Mac上的ARM64和x86-64架构。了解如何支持带有这两种架构的Mac,以及如何为Apple Arcade创建合并的二进制文件。

Choose your operating system:

Windows

macOS

Linux

随着苹果引入M1处理器,从2021年开始,Mac都是使用与iOS设备相同的ARM64架构制造的。与此同时,基于Intel的上一代Mac使用x86-64架构。

尽管苹果提供了名为 Rosetta2 的指令转换程序来支持旧版应用程序,但 Apple Arcade 需要开发人员为游戏提供单个通用二进制文件,并且明确支持这两种架构。这将确保在两代硬件上尽可能实现最佳的性能和稳定性。

本页面提供了以下资源,用于利用此级别的支持来构建 虚幻引擎(UE)项目。

  • 有关虚幻引擎与这两种架构的兼容信息。

  • 有关如何分别支持这两种架构的说明。

  • 有关如何构建支持这两种架构的通用二进制文件的说明。

先决条件

本页面上的说明建立在你使用macOS上运行的Xcode来构建项目的假设之上。你应该先熟悉

[**虚幻自动化工具(Unreal Automation Tool)**](ProductionPipelines/BuildTools/UnrealAutomationTool)
(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架构的项目。你可以将这些构建发布到任一类型的设备,该设备会将相应的二进制文件自动用于其架构。