Compiling Your UE5 Game For Apple Silicon (M1)
This tutorial will walk you through how to compile and run your UE5 game on native Apple Silicon (M1 chip)
Compiling Your UE5 Game For Apple Silicon (M1)
Please make sure you meet the following requirements
- M1 Based Mac (Apple Silicon)
- Unreal Engine 5 (Full Source)
- Visual Studio Code
Generating A Visual Studio Code Project For UE
- Run UnrealBuilTool located here UnrealEngine/Engine/Binaries/DotNET/UnrealBuildTool to generate Visual Studio Code project files for the Engine
./{UEInstallDir}/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool -VSCode
- To generate Visual Studio Code project files for your game run
./{UEInstallDir}/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool -VSCode {AbsolutePath}/{ToYourGame}/{YourGameName}.uproject -game
It's important to specify -game when generating for your game
Modifying Your Generated Project Files To Compile For Apple Silicon
- Open the generated UE5 Visual Studio Code project located at
{UEInstallDir}/UE5.code-workspace - Open
tasks.jsonand locate the"label": "UnrealGame Mac Development Build"section and modify it by adding"-architecture=arm64"like so
{
"label": "UnrealGame Mac Development Build",
"group": "build",
"command": "Engine/Build/BatchFiles/Mac/Build.sh",
"args": [
"UnrealGame",
"Mac",
"Development",
"-waitmutex",
"-architecture=arm64" <----Add This Line
],
"problemMatcher": "$msCompile",
"dependsOn": [
"UnrealBuildTool Mac Development Build"
],
"type": "shell",
"options": {
"cwd": "{UEInstallDir}"
}
},
- You can do this for any of the
UnrealGamesections such as forDebugGame,Shippingetc - Now do the exact same thing for your Game project
- Open the generated UE5 Visual Studio Code project located at
{YourGamePath}/{YourGameName}.code-workspace - Open
tasks.jsonand locate the"label": "{YourGameName} Mac Development Build"section and modify it by adding"-architecture=arm64"like so
{
"label": "{YourGameName} Mac Development Build",
"group": "build",
"command": "Engine/Build/BatchFiles/Mac/Build.sh",
"args": [
"{YourGameName}",
"Mac",
"Development",
"{PathTo}/{YourGame}/{YourGameName}.uproject",
"-waitmutex",
"-architecture=arm64" <----Add This Line
],
"problemMatcher": "$msCompile",
"type": "shell",
"options": {
"cwd": "{UEInstallDir}"
}
},
- You can do this for any of the
{YourGameName}sections such as forDebugGame,Shippingetc {{danger}}
Make sure to not modify the {YourGameName}Editor sections as the Editor does not support Apple Silicon (M1)
{{/danger}}
Compiling Your Game For Apple Silicon (M1)
- Press CMD+Shift+B to bring up the build menu
- In your UE5 project search for
UnrealGame Mac Development Buildand run it - In your Game project search for
{YourGameName} Mac Development Buildand run it.
Packaging Your Game
- The last step is to cook and package your game
- This can be done by using UnrealAutomationTool located here {UEInstallDir}/Engine/Build/BatchFiles/RunUAT.sh
- Simply run these commands
1. cd {UEInstallDir}
2. Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project={AbsolutePath}/{ToYourGame}/{YourGameName}.uproject -cook -stage -package -noP4 -clientconfig=Development -serverconfig=Development -specifiedarchitecture=arm64 -architecture=arm64
- Your packaged game can now be found and run here
{AbsolutePath}/{ToYourGame}/Saved/StagedBuilds/Mac/{YourGameName}.app