iOS SDK 17 Packaging Failures in Unreal Engine 5.1.1

I am also using Unreal 5.1.1 and have resolved this issue with the following steps. Hope it helps anyone else facing similar issue with the new IOS SDK 17 requirement from App Store.

  1. In order to build IOS SDK 17, your xcode needs to be at least version 15, and in order to install xcode 15.x, you may need to upgrade your MacOS. See this page for version requirements: Xcode - Support - Apple Developer

Personally I just got the latest at the time of writing (xcode 15.4 for Sonoma 14).
I had some issues with updating xcode from the store, so I had to follow some guide on how to completely removing my xcode and reinstalling the latest stable release.

Take note that once you perform the updates, you can no longer open UE Editor. You have been warned!!

2 . Once MacOS and Xcode are updated to the correct version, you need to work with UE program source (for UEBuildTool only) to make a minor modification in order to perform the packaging for the new SDK.

This is because the SDK checker in the build tool performs SDK version validation and restricts it to 14.9.9 as its max version. This version number is actually the Xcode version (not the Mac or IOS SDK). Since the new xcode version is 15.x, this validation will fail.

  1. Go to your Unreal installation directory. Typically it’s:
    ~/Shared/Epic Games/UE_5.1

Modify and save changes for this file: Engine/Source/Programs/UnrealBuildTool/Platform/Mac/ApplePlatformSDK.Version.cs

Change

MaxVersion = “14.9.9”

to

MaxVersion = “15.9.9”

  1. Fire up a terminal and enter the following commands:

cd ~/Shared/Epic Games/UE_5.1/Engine/Build/BatchFiles/Mac
dotnet build …/…/…/Source/Programs/UnrealBuildTool/UnrealBuildTool.csproj -c Development

  1. Copy the following files from:
    ~/Shared/Epic Games/UE_5.1/Binaries/DotNet/UnrealBuildTool
    to
    ~/Shared/Epic Games/UE_5.1/Binaries/DotNet/AutomationTool

UnrealBuildTool
UnrealBuildTool.dll
UnrealBuildTool.pdb
UnrealBuildTool.xml
EpicGames.Build.dll
EpicGames.Build.pdb

In theory, you could also dotnet build AutomationTool project, but these were the steps I took, so I just listed as it is.

If you want to revert steps 4 and 5, you could of course go to Epic Launcher and repair or reinstall the engine.

  1. Next, you need to go to your Project (or Game) folder, and modify the Editor.Target.cs and Target.cs files due to changes in the new xcode toolchain. Or compilation will fail.
    Add the following check at the top of the constructor for both files:

if (Target.Platform == UnrealTargetPlatform.Mac || Target.Platform == UnrealTargetPlatform.IOS)
{
bOverrideBuildEnvironment = true;
AdditionalCompilerArguments = “-Wno-error -Wno-deprecated-builtins”;
}

For this step, credits to:

Now you should be able to open your uproject file normally and package for IOS. Hope this works for whoever is seeing this.