Apple M1 프로세서가 출시되면서, 2021년부터 Mac은 iOS 디바이스와 동일한 ARM64 아키텍처를 사용하여 제조됩니다. 반면 이전 세대인 Intel 기반 Mac은 x86-64 아키텍처를 사용합니다.
Apple에서 레거시 애플리케이션 지원에 도움이 되도록 Rosetta2 라는 인스트럭션 트랜슬레이터를 제공하지만 Apple Arcade 는 개발자가 두 아키텍처 모두 명시적으로 지원하는 게임에 대해 단일 유니버설 바이너리를 제공해야 합니다. 이를 통해 두 세대 하드웨어 모두 퍼포먼스와 안정성을 최대한 보장할 수 있습니다.
이 페이지에서는 이러한 지원을 포함하여 언리얼 엔진(UE) 프로젝트 빌드를 위한 다음과 같은 리소스를 제공합니다.
- 두 아키텍처와 언리얼 엔진의 호환성 관련 정보
- 두 아키텍처를 개별적으로 지원하는 방법에 관한 지침
- 두 아키텍처를 지원하는 유니버설 바이너리를 빌드하는 방법에 관한 지침
전제조건
이 페이지의 지침은 macOS에서 실행 중인 Xcode를 사용하여 프로젝트를 빌드한다고 가정합니다. 계속하기 전에 언리얼 자동화 툴(Unreal Automation Tool, UAT) 과 BuildCookRun 명령을 숙지해야 합니다.
호환성 참고 사항
UE 5.1에서는 Apple Silicon 디바이스에 Xcode로 프로젝트를 빌드할 때 언리얼 에디터 가 에디터 빌드와 독립형 빌드 둘 다에 Apple Silicon 네이티브 지원을 제공하며 자동으로 컴파일하도록 설정되었습니다. 그러나 언리얼 에디터의 ARM64 지원은 실험단계 기능으로, 일부 언리얼 마켓플레이스 플러그인 및 타사 라이브러리는 아직 ARM64를 지원하지 않습니다. 에디터를 x86용으로 빌드하려면 타깃 디바이스를 My Mac 에서 My Mac (Rosetta) 로 변경하세요.

언리얼 엔진은 타깃 아키텍처를 arm64
로 세팅할 경우 ARM64 지원이 포함된 프로젝트에 대해 패키징된 빌드를 출력할 수 있습니다. 자세한 정보는 아래 설명을 확인해주세요.
ARM64 및 x86-64용 바이너리 생성
별도의 바이너리 생성
각 아키텍처에 대한 바이너리를 빌드하려면 언리얼 자동화 툴의 BuildCookRun 명령을 사용하여 빌드를 시작하고 타깃 아키텍처를 설정해야 합니다.
우선 명령줄에서 언리얼 엔진의 설치 디렉터리로 이동합니다.
cd /Users/Current.User/Epic\Games/UE5.1
그런 다음 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 아키텍처를 모두 지원하는 프로젝트가 빌드됩니다. 이 빌드를 두 유형의 디바이스 중 하나에 배포할 수 있으며, 디바이스에서 자동으로 아키텍처에 적합한 바이너리를 사용합니다.