Apple M1 프로세서가 출시되면서, 2021년부터 Mac은 ARM64 아키텍처를 사용하여 제조됩니다. 반면 이전 세대인 Intel 기반 Mac은 x86-64 아키텍처를 사용합니다.
Apple에서 레거시 애플리케이션을 지원하기 위해 Rosetta2 라는 인스트럭션 트랜슬레이터를 제공하기는 하지만, Apple의 스토어는 개발자가 두 아키텍처의 슬라이스가 모두 포함된 게임에서 단일 유니버설 바이너리를 제공할 것을 요구합니다. 이를 통해 두 세대 하드웨어 모두 퍼포먼스와 안정성을 최대한 보장할 수 있습니다. 이 페이지에서는 두 아키텍처와 언리얼 엔진의 호환성 관련 정보를 제공할 뿐만 아니라 유니버설 바이너리를 수용하는 방법에 대한 지침도 소개합니다.
전제조건
이 페이지의 지침은 macOS에서 Xcode를 사용하여 프로젝트를 빌드한다고 가정합니다. 계속하기 전에 언리얼 자동화 툴(Unreal Automation Tool, UAT) 과 BuildCookRun 명령도 숙지해야 합니다.
macOS 아키텍처 환경설정
빌드의 타깃 아키텍처를 지정할 수 있는 몇 가지 방법이 있습니다.
- UAT에서는
-specifiedarchitecture
또는-architecture=
파라미터를 사용하여 컴파일할 아키텍처를 설정합니다. - Xcode에서는 IDE 상단의 드롭다운에서 타깃 디바이스를 선택합니다.
- 언리얼 에디터에서는 플랫폼(Platforms) > macOS를 클릭하여 선택합니다.
다음은 Apple 디바이스의 유효한 아키텍처입니다.
아키텍처 | 호환 디바이스 |
---|---|
x86_64 |
Intel 프로세서를 사용하는 MacOS 디바이스입니다. |
arm64 |
M1 또는 M2 프로세서 이상 버전을 사용하는 MacOS 디바이스입니다. |
arm64+x86_64 |
모든 MacOS 디바이스입니다. |
언리얼 에디터용 유니버설 바이너리 지원
UE 5.2 이상 버전에서 에픽게임즈 런처를 통해 배포되는 언리얼 에디터 macOS 빌드는 유니버설 바이너리로 빌드됩니다. 언리얼 에디터는 디바이스의 아키텍처에 적절한 슬라이스를 자동으로 사용합니다.
에디터를 Xcode 내 소스에서 빌드하는 경우 자동으로 x64 아키텍처를 사용하지만, 아키텍처를 arm64+x86_64
로 설정하여 에디터를 유니버설 바이너리로 빌드할 수 있습니다.
에디터를 x86용으로 빌드하려면 타깃 디바이스를 My Mac 에서 My Mac (Rosetta) 로 변경하세요.
ARM64 및 x86-64용 바이너리 생성
유니버설 바이너리를 포함한 프로젝트를 빌드하려면 BuildCookRun
에서 arm64+x86_64
를 아키텍처로 사용합니다.
-specifiedarchitecture=arm64+x86_64
ARM64와 x86-64 아키텍처의 슬라이스를 모두 포함하는 프로젝트가 빌드됩니다. 이 빌드를 두 유형의 디바이스 중 하나에 배포할 수 있으며, 디바이스에서 자동으로 아키텍처에 적합한 바이너리를 사용합니다.