Apple Arcade에 ARM64 및 유니버설 바이너리 지원하기

Apple Arcade는 Mac에서 ARM64 및 x86-64 아키텍처 지원을 요구합니다. Mac에서 두 아키텍처를 모두 지원하는 방법과 Apple Arcade에 병합된 바이너리를 생성하는 방법을 알아봅니다.

Choose your operating system:

Windows

macOS

Linux

Apple M1 프로세서가 출시되면서 2021년부터의 Mac은 iOS 디바이스와 동일한 ARM64 아키텍처를 사용하여 제조되었습니다. 반면 이전 세대인 Intel 기반 Mac은 x86-64 아키텍처를 사용합니다.

Apple에서 레거시 애플리케이션 지원에 도움이 되도록 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

BuildCookRun-architecture= 명령을 추가하면 빌드 대상인 아키텍처를 지정합니다.

예를 들어 다음 명령은 ARM64용 빌드를 생성합니다.

-architecture=arm64

다음 명령은 x86용 빌드를 생성합니다.

-architecture=x86_64

아키텍처마다 프로젝트를 처음 빌드할 때에는 평소보다 시간이 오래 걸립니다. 이후에는 UAT에서 쿠킹된 데이터를 캐싱하여 후속 빌드는 빨라질 것입니다.

바이너리를 별도로 컴파일하고 이러한 바이너리를 포함한 빌드를 각기 다른 머신에 배포하여 x86-64 및 ARM64 아키텍처를 모두 지원하는 프로젝트를 빌드할 수 있습니다. 하지만 Apple Arcade에 대해서는 전체적으로 더 편리하게 배포할 수 있는 병합된 유니버설 바이너리를 생성해야 합니다.

UAT로 유니버설 바이너리 생성하기

유니버설 바이너리를 포함한 프로젝트를 빌드하려면 BuildCookRun 에서 다음을 아키텍처로 사용합니다.

-specifiedarchitecture=arm64+x86_64

ARM64와 x86-64 아키텍처를 모두 지원하는 프로젝트가 빌드됩니다. 이 빌드를 두 유형의 디바이스 중 하나에 배포할 수 있으며, 디바이스에서 자동으로 아키텍처에 적합한 바이너리를 사용합니다.