FMod causes error when using remote mac compile

When packaging for Mac from Windows using remote machine it is not possible to finish building because FMod is not using correct folders for their third party libraries. FMod binaries downloaded from this site are placed in FMod/Binaries but packaging deletes whole Binaries and Intermediate folder before every build. It thinks that binaries can be recreated using source but it is not possible as those libs are third party.

Here is the log: https://pastebin.com/ZD1bc9dK (4.21.1)

Look for libfmodstudio_iphoneos, you will notice that packaging deletes those files and then tries to build the project. I tried to immediately copy them on mac after delete and it worked. For now I modified Unreal Build Tool, so it completely ignores FMod binaries and placed them manually into Binaries folder on remote Mac. It is not nice workaround, so it would be nice to have that fixes, as it is probably issue on FMod integration side. I have seen that some other plugins from game DNA are using ThirdParty folder or Extras folder for their own binaries. Those plugins are working correctly in our project.

Rough repro:

Create c++ project with fmod
Setup provision and certificate on windows
Install xcode on remote mac
Configure IP and other remote settings in project settings
Package for iOS

Thank you for reporting this, we will look into this further for a solution.

Is there any solution to this? - we’re hitting this problem as well in UE 4.23.1 and can’t remote build on a Mac without manually dragging the Binaries directory across during the compilation phase.

We’re not using the Unreal Engine source so can’t rebuild UnrealBuildTool to workaround this.

Tried write protecting the Binaries directory but that just causes the build script to fail.

My workaround was modification of UnrealBuildTool’s RemoteMac.cs file. I belive this change will work even in binary build from launcher.

I added

CommonRsyncArguments.Add("–filter ‘protect libresonanceaudio.a’");
CommonRsyncArguments.Add("–filter ‘protect libgvraudio.a’");
CommonRsyncArguments.Add("–filter ‘protect libfmodstudio_iphoneos.a’");
CommonRsyncArguments.Add("–filter ‘protect libfmodstudioL_iphoneos.a’");
CommonRsyncArguments.Add("–filter ‘protect libfmod_iphoneos.a’");
CommonRsyncArguments.Add("–filter ‘protect libfmodL_iphoneos.a’");

at line 252 of RemoteMac.cs (line number based on 4.22)

There is UnrealBuildTool.csproj in launcher builds too and you can safely change it’s source and rebuild only this C# project.

1 Like