I am trying to build an AR game for iOS, using a custom build of Unreal Engine 5.1.1, on an Apple Silicon (M1 Max) Macbook Pro.

(I have to use a custom branch of UE5 because there is a problem with using AR and Scene Capture.)

Everything was going fine until I (stupidly) let my iPhone 14 update itself to iOS 17.

Now I cannot build for it anymore, because 17 requires using Xcode 15. But when I build our project in Xcode 15, for packaging in UE, it fails with some low level assembly/machine language instruction.

It works fine with Xcode 14, but I cannot install to my phone for testing. And obviously I cannot downgrade my phone.

Can anyone shed any light here?


1 Answer 1


I would say that the best path is to rebase your custom build of Unreal Engine to 5.3. I could build Unreal Engine 5.1 for Mac by applying the patches:

--- a/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/ApplePlatformSDK.Versions.cs
+++ b/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/ApplePlatformSDK.Versions.cs
@@ -22,13 +22,13 @@
 namespace UnrealBuildTool
                        if (RuntimePlatform.IsMac)
                                MinVersion = "13.4.0";
-                               MaxVersion = "14.9.9";
+                               MaxVersion = "15.9.9";
                                // @todo turnkey: these are MobileDevice .dll versions in Windows - to get the iTunes app version ( etc) would need to hunt down the .exe
                                MinVersion = "1100.0.0.0";
-                               MaxVersion = "1499.0";
+                               MaxVersion = "1599.0";


--- a/Engine/Source/Runtime/Core/Public/Apple/ApplePlatformCompilerPreSetup.h
+++ b/Engine/Source/Runtime/Core/Public/Apple/ApplePlatformCompilerPreSetup.h
@@ -37,6 +37,11 @@
        #pragma clang diagnostic warning "-Wparentheses-equality"
+#if (__clang_major__ >= 15)
+#define unary_function __unary_function
+#pragma clang diagnostic ignored "-Wdeprecated-builtins"
+#pragma clang diagnostic ignored "-Wsingle-bit-bitfield-constant-conversion"
 #pragma clang diagnostic ignored "-Winconsistent-missing-override"
 #pragma clang diagnostic ignored "-Wundefined-bool-conversion"
 #pragma clang diagnostic ignored "-Wunused-local-typedef"


--- a/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/MacToolChain.cs
+++ b/Engine/Source/Programs/UnrealBuildTool/Platform/Mac/MacToolChain.cs
@@ -294,8 +294,6 @@
 namespace UnrealBuildTool

                        // Needed to make sure install_name_tool will be able to update paths in Mach-O headers
-                       Arguments.Add("-lc++");

and finally

--- a/Engine/Plugins/Experimental/NNI/Source/ThirdParty/ORT_4_1/Private/core/session/provider_stubs.cc
+++ b/Engine/Plugins/Experimental/NNI/Source/ThirdParty/ORT_4_1/Private/core/session/provider_stubs.cc
@@ -30,7 +30,7 @@ ORT_API_STATUS_IMPL(OrtSessionOptionsAppendExecutionProvider_DML, _In_ OrtSessio

+#if 0 // ndef USE_MIGRAPHX
                     _In_ OrtSessionOptions* options, int device_id) {

This still produces some warnings, not sure if some of them are really critical.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .