Xcode 15 + macOS 14.3.1 + unreal 5.3.1 c++ linker error for arm64

Hi -
I’m trying to build a c++ plugin that can interface with Jira and I’m getting a linker error when I add this to my imports

#include "Interfaces/IHttpRequest.h"

The exact error in Xcode is

Showing All Messages
Undefined symbols for architecture arm64:

  "FHttpModule::Get()", referenced from:

      FweeeeModule::OnSpawnPluginTab(FSpawnTabArgs const&) in Module.weeee.cpp.o

ld: symbol(s) not found for architecture arm64

/Users/Shared/Epic Games/UE_5.3/clang:1:1: linker command failed with exit code 1 (use -v to see invocation)

The Unreal docs suggest using Rosetta but that was removed in Xcode 15. I’m trying to compile this for “Any Mac (Apple Silicon, Intel)” if that helps (I forget what that option is called in Xcode). The http module is the first Unreal c++ module I’ve tried to pull in. Do they not provide arm64 libraries for all of their api?

I ask b/c it seems that the non-Windows platforms are only supported in a second class manner and I’m trying to figure out if continuing this on my Mac is pointless and if I am forced to use a Windows machine and Visual Studio.

Thanks in advance!

bump

Finally resolved it. It’s pretty stupid and likely a bug in the Unreal Xcode project scaffolding.

In the “Build Settings” for the project there is a “Build Active Architecture Only” setting that was set to Yes. You want that set to No.

In the “Editor” Build Settings the VALID_ARCHS should already be set to “arm64 x86_64” (mine was). Not sure what this does as it seems to get ignored.

Before I set that Active Arch Only to Yes, this was the dotnet build command that Xcode was trying to run


Running dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll MyProjectEditor Mac Development /Users/me/git/stuff/something/MyProject/MyProject.uproject -architecture=arm64

After setting that to Yes

Running dotnet Engine/Binaries/DotNET/UnrealBuildTool/UnrealBuildTool.dll MyProjectEditor Mac Development /Users/me/git/stuff/something/MyProject/MyProject.uproject -architecture=arm64+x86_64