Mac: Unable to find SDK, Must be between 11.0.0 and 12.9.9

I just installed UE EA5 on a Mac running macOS Monteray. The version of Xcode I have is 13.1, and Xcode 12 will not run on this system (ughh).

When trying to create a new Game >> Blank >> C++ project template, I get the error:

“ERROR: Unable to find a valid SDK for Mac. Found Version: 13.1. Must be between 11.0.0 and 12.9.9”

Is there a solution out there to fix this? I have tried xcode-select in the Terminal, but that didn’t help.

2 Likes

So the issue here is that Epic have not whitelisted XCode versions 13 and beyond to work with UE.

I was able to get around that while building locally, though not sure if I had to patch the return value of the xcode version checking, or whether I edited the source to also accept 13.

Oh, maybe I should look into how to build locally. I’m assuming this is getting the engine source from Github, or something?

Would appreciate you sharing the patch or showing what line to edit! Having similar issue (same error) with UE5 after updating my Xcode to 13.1 – can’t launch project on iPhone anymore…

@Peter_Gusev So I tried going through the steps again to remember how I did it, and I didn’t run into the same issue again! Weird :man_shrugging:

Timeline of my vain efforts

Cloned UE5. Nah JK, git clones are slow as, downloaded a ZIP of the UE5-main branch, which is the most up to date one


./Setup.command - ran fine, took ages


./GenerateProjectFiles.command - ran into a dotnet issue (library loading disallowed by system policy)

Fixed by cd Engine/Binaries/ThirdParty/DotNet/Mac/shared; xattr -d com.apple.quarantine Microsoft.NETCORE.App

ls showed the XCodeProject was generated


This is where the fun really starts. ■■■■ I hate XCode. Changed the build settings to use New Build System, and to target My Mac, not Rosetta. This failed, as eventually some things popped up that could not compile to ARM.

I do remember when things crashed and burned, the following command might have helped, or something of that sort:
(export "xcodebuild -version"="12.4.1"; ./GenerateProjectFiles.command ).

The syntax looks off to me though, so not sure if I had a different invocation somewhere, but basically exporting a string into an env var, which prevents xcodebuild from returning the actual version. Again, not sure if this was the actual solution, or just a dumb idea I had from too much Python hacking around at work.

Seems like Epic have made the latest UE5 version play nice with XCode 13 and beyond. I might leave the build running tomorrow and report back with more concrete results though.

I’d like to jump in, but I am still getting the 404 page on Github, even after linking / confirming my Github account and signing in. I thought I followed all the steps, but I just don’t what I’m missing. Anything obvious I’m missing?

To anyone who is still having trouble with this: I had to edit the source code before I ran ./GenerateProjectFiles.command.

Line 27 in Engine/Source/Programs/UnrealBuildTool/Platform/Mac/ApplePlatformSDK.cs, make this line MaxVersion = "13.1.0";.

The script should rebuild the SDK and then generate the project files for you. At this point you’ll be able to open UE5 in Xcode. I haven’t verified if it’ll build however.

Edit: so I just tried to build it and the build failed. So it’s safe to say this problem won’t work with this version of Clang. It may not even work with ARM, period.


Showing Recent Issues
Undefined symbols for architecture arm64:

  "fbxsdk::FbxNode::GetChild(int)", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&)::Local::CollectCurveNodes(fbxsdk::FbxNode*, TArray<fbxsdk::FbxNode*, TSizedDefaultAllocator<32> >&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxNode::GetChildCount(bool) const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&)::Local::CollectCurveNodes(fbxsdk::FbxNode*, TArray<fbxsdk::FbxNode*, TSizedDefaultAllocator<32> >&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxScene::GetNodeCount() const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxScene::GetNode(int)", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxProperty::Get(void*, fbxsdk::EFbxType const&) const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxNurbsCurve::TessellateCurve(int)", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxAMatrix::FbxAMatrix(fbxsdk::FbxAMatrix const&)", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxNode::EvaluateGlobalTransform(fbxsdk::FbxTime, fbxsdk::FbxNode::EPivotSet, bool, bool)", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxLine::GetEndPointCount() const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxLine::GetIndexArraySize() const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxLine::GetEndPointAt(int) const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxLine::GetPointIndexAt(int) const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxNode::GetNodeAttribute()", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&)::Local::CollectCurveNodes(fbxsdk::FbxNode*, TArray<fbxsdk::FbxNode*, TSizedDefaultAllocator<32> >&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxVector4::FbxVector4(fbxsdk::FbxVector4 const&)", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxObject::GetName() const", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

  "fbxsdk::FbxAMatrix::~FbxAMatrix()", referenced from:

      FControlRigDrawContainerDetails::ImportCurvesFromFBX(FString const&, UControlRigBlueprint*, FControlRigDrawContainerImportFbxSettings const&) in Module.ControlRigEditor.1_of_3.cpp.o

ld: symbol(s) not found for architecture arm64

Apparently if you build the ue5-main branch from source, it will work with XCode 13. Currently waiting for it to build, thus far about 50% done after 1 hour building on 10 core M1 Max.

Source 1, includes some instructions:

Source 2 (anecdotal evidence):

Also note:
The git clone step can take an incredibly long time, I recommend using something like the following to only do a shallow clone of the single branch you need, into a new directory:

git clone --depth=1 --single-branch -b ue5-main git@github.com:EpicGames/UnrealEngine.git UnrealEngine5

Note I cloned this into a new UnrealEngine5 directory, rather than using an old 4.x directory.

YMMV but for me, creating a new shallow clone was (surprisingly) much, much faster than fetching and changing branch from an existing clone e.g. git fetch && git checkout ue5-main.