# UE5 - Building shipping package on Mac M1 for Intel architecture

**URL:** <https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456>\
**Category:** Platform & Builds\
**Tags:** automationtool, MAC-OS-X, unreal-engine, shipping-build, Packaging, question\
**Created:** [February 28, 2023, 1:08pm UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456 "2023-02-28T13:08:15Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Talad](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Talad](https://forums.unrealengine.com/u/Talad)\
**Post date:** [February 28, 2023, 1:08pm UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456/1 "2023-02-28T13:08:15Z")

</div>

Hi,  
similarly to the other thread I created for UE4 (which at the end works), I’m now creating this thread for UE5, as I’ve upgraded my project and I cannot find a way to package for Intel Architecture on M1 chip.

I migrated my project to UE5, and building shipping on windows and linux worked fine. I’m stuck on Mac as it is always creating a ARM64 executable.

I tried the following, incrementally.

1. Start a new shell with arch x86\_64:  
$env /usr/bin/arch -x86\_64 /bin/zsh --login

2. Set valid architectures in environment:

3. Pass the -architecture flag to the build command:

> -architecture=x86\_64

My current build command is:

> /Users/luke/5.1.1-release/Engine/Build/BatchFiles/RunUAT.command BuildCookRun -project=“/Users/luke/PSUnreal511/PSUnreal.uproject” -nop4 -Prereqs -package -target=PSUnrealClient -clientconfig=Shipping -utf8output -platform=Mac -architecture=x86\_64 -targetplatform=Mac -build -cook -allmaps -pak -stage -archive -archivedirectory=“/Users/luke/temp/PSUnreal\_Ship”

1. Modify the Unreal Engine Xcode Settings and my project Xcode settings to have only Intel 64 architecture listed as available target platforms.

With all of the above, I still get an M1 executable for my project. I verify that with “file” command.

UnrealEditor is actually a x86\_64:

> luke@Lucas-Mac-mini Scripts % file ~/5.1.1-release/Engine/Binaries/Mac/UnrealEditor.app/Contents/MacOS/UnrealEditor  
> /Users/luke/5.1.1-release/Engine/Binaries/Mac/UnrealEditor.app/Contents/MacOS/UnrealEditor: Mach-O 64-bit executable x86\_64

But my project is arm64:

> luke@Lucas-Mac-mini Scripts % file ~/temp/PSUnreal\_Ship/MacClient/PSUnrealClient.app/Contents/MacOS/PSUnrealClient  
> /Users/luke/temp/PSUnreal\_Ship/MacClient/PSUnrealClient.app/Contents/MacOS/PSUnrealClient: Mach-O 64-bit executable arm64

In the logs I see this:

> \*\*\*\*\*\*\*\*\*\* BUILD COMMAND STARTED \*\*\*\*\*\*\*\*\*\*  
> Building PSUnrealClientEditor as x86\_64 (arm64 not currently supported)  
> Building UnrealHeaderTool as arm64 for host  
> Building UnrealHeaderTool as arm64 for host  
> Building ShaderCompileWorker as arm64 for host  
> Building UnrealPak as arm64 for host  
> Building PSUnrealClient as arm64 for local non-distribution

As you can see the last line says it is building arm64.

then it starts to rebuild the whole engine

> Building 1548 actions with 1 process…  
> [1/1548] Link UnrealEditor-Core.dylib

then it compiles my project, but on the log I see it’s passing the -architecture=arm64 which I didn’t specify.

Does anyone know how to control this?

---

<div class="post-metadata">

**Author:** ![Talad](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Talad](https://forums.unrealengine.com/u/Talad)\
**Post date:** [March 5, 2023, 8:36pm UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456/2 "2023-03-05T20:36:28Z")

</div>

There is definitely a bug in the packager, the workaround I found is the following:

1. run the packaging as usual, even if that creates a M1 executable
2. check in the log the commands used by Automation Tool and pick the one where it’s compiling your project and execute again only that step with -architecture=x86\_64
3. run the packaging command again without the “-build” piece, so the packager will use the executable you created.

In my case these are the commands for step 2:

> /Users/luke/5.1.1-release/Engine/Binaries/ThirdParty/DotNet/6.0.302/mac-x64/dotnet “/Users/luke/5.1.1-release/Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll” PSUnrealClient Mac Shipping -Project=/Users/luke/PSUnreal511/PSUnreal.uproject /Users/luke/PSUnreal511/PSUnreal.uproject -NoUBTMakefiles -remoteini=“/Users/luke/PSUnreal511” -skipdeploy -architecture=x86\_64 -Manifest=/Users/luke/5.1.1-release/Engine/Intermediate/Build/Manifest.xml -NoHotReload -log=“/Users/luke/Library/Logs/Unreal Engine/LocalBuildLogs/UBT-PSUnrealClient-Mac-Shipping.txt”

and for step 3:

> /Users/luke/5.1.1-release/Engine/Build/BatchFiles/RunUAT.command BuildCookRun -archive -archivedirectory=/Users/luke/temp/PSUnreal\_Ship -noP4 -project=/Users/luke/PSUnreal511/PSUnreal.uproject -cook -stage -package -pak -prereqs -nodebuginfo -platform=Mac -targetplatform=Mac -architecture=x86\_64 -target=PSUnrealClient -clientconfig=Shipping -utf8output

---

<div class="post-metadata">

**Author:** ![neosdlc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@neosdlc](https://forums.unrealengine.com/u/neosdlc)\
**Post date:** [June 17, 2023, 7:55pm UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456/3 "2023-06-17T19:55:33Z")

</div>

I tried to open the executable on a mac with an intel core i5 processor, I created my project on a mac m1 chip, but I can’t open it, a “cannot open the application” message appears, even after changing the architecture of the executable, any recommendations?

---

<div class="post-metadata">

**Author:** ![Kusi](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kusi/32/729118_2.png) [@Kusi](https://forums.unrealengine.com/u/Kusi)\
**Post date:** [July 17, 2023, 1:33pm UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456/4 "2023-07-17T13:33:20Z")

</div>

`-specifiedarchitecture=x86_64`  
or:  
`-specifiedarchitecture=arm64`  
or:  
`-specifiedarchitecture=arm64+x86_64`

---

<div class="post-metadata">

**Author:** ![Talad](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Talad](https://forums.unrealengine.com/u/Talad)\
**Post date:** [July 24, 2023, 3:10pm UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456/5 "2023-07-24T15:10:08Z")

</div>

Do you say that because you tried it, or because you think it should work? Because in my case that’s not working.

---

<div class="post-metadata">

**Author:** ![Kusi](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/kusi/32/729118_2.png) [@Kusi](https://forums.unrealengine.com/u/Kusi)\
**Post date:** [August 6, 2023, 5:05am UTC](https://forums.unrealengine.com/t/ue5-building-shipping-package-on-mac-m1-for-intel-architecture/780456/6 "2023-08-06T05:05:13Z")

</div>

Apple’s chip build does not run on an Intel chip. Therefore, the two architectures must be built separately… Eg Game client target build/cook/package:

```sh
/...../UnrealEngine/Engine/Build/BatchFiles/RunUAT.command BuildCookRun -project=/.../MyProject/MyProyect.uproject -platform=Mac -client - clientconfig=Shipping -specifiedarchitecture=arm64+x86_64 -noP4 -nodebuginfo -allmaps -utf8output -build -nocomplieeditor -SkipCookingEditorContent -pak -package -stage -stagingdirectory=/..../Myproject/Package

```
