Mac Build script not generating dSYM on one machine but not other

Hi,
Been using Unreal for a few years and shipped a few games, but this is my 1st time trying to do any builds directly for / with MacOS.

I have an automated build setup to generate Mac binaries for out Mac users who are not coders, have a custom binary build of the Engine (4.27+) which I am running these builds against. Need to use the source engine as we are targetting console.

So Running a simple shell script to trigger the build:

Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -project=PROJECTFILEHERE.uproject -platform=Mac -noP4 -clientconfig=Development -build -iostore -skipcook -skipstage -verbose

The build is triggered. On my old MacBook Pro laptop (2015) using the custom built binary engine, this works fine and dandy, all files generated that we need, great. (This laptop has never been reinstalled and has all sorts of things go through it, so there may be some magic hidden setting, I don’t know)

Now if I run this on the clean install build machine (MacMini, 2014, slow but its a small project), the script runs, and the build starts, but doesn’t generate and dSYM files which are in the manifest so the automation tool fails the build!

Both machines are running the same version of xcode, have msbuild installed, and the MacMini did generate the binary engine including dSYM files, so why it’s not doing so when attempting to build the game with the same script is baffling me.

Any help greatly appreciated, thanks.

1 Like

Some additional info.

On the machine that builds fine, I created a new user and copied the engine and project over to that users directory. Running the build script as that user produces the same error!

So it seems there is some configuration option somewhere in MacOS / XCode that might be the culprit here.

1 Like

Did you ever get this resolved, our build machine has just started doing this exact behavior.

1 Like

Just in case someone else runs into this issue (UE4.27) I spent some time debugging into UnrealBuildTool, something is a miss with how the TargetRules, MacToolChainOptions and GlobalCompileEnvironment are getting generated, culminating in line 1504 of MacToolChain.cs returning before dSym’s are requested to be built, but the dSyms are still added to the BuildProducts list that gets added to the manifest.

Not sure what the actual fix or cause of this is, but adding this to your Editor.Target.cs will allow you to build, but you will not have dSyms

		if (Target.Platform == UnrealTargetPlatform.Mac)
		{
			bOmitPCDebugInfoInDevelopment = true; //Attempt to fix Mac dSym issues
		}
2 Likes