UE5 - Building shipping package on Mac M1 for Intel architecture

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

1 Like