iOS 26 SDK & App Store Submission

Apple requires apps uploaded to App Store Connect to be built with Xcode 26 or later using base SDK for iOS 26, iPadOS 26, tvOS 26, visionOS 26, or watchOS 26 since April 28, 2026. Please refer to the official announcement from Apple here.

UE 5.7 and 4.27+ have been validated to be functional when building against the iOS 26 SDK using Xcode 26.1.1.** You can find Xcode 26.1.1 on Apple Developer’s download archive. No changes are required — open your Xcode project with Xcode 26.1.1 and build as normal.

A few things worth knowing regardless of version:

  • Xcode version matters. Use Xcode 26.1.1. Avoid Xcode 26.4 for now — it includes a Clang update that introduces new compiler issues we’re still working through.

  • Known issue: shader library corruption on iOS 16. If your app needs to support iOS 16 devices, be aware of a known issue (UE-333130) where metallibs built with the iOS 26 SDK can crash on iOS 16. Refer to iOS 15.x Crash (Corrupted Library) Occurring in Unreal Engine 5.7 - #4 by anonymous-edc for more details. If your minimum deployment target is iOS 17 or higher, this doesn’t affect you.

:victory_hand:

1 Like

@paul.georges

Thanks for the valuable information I got from this.

However - based on my experience - the generated app is still stamped as iOS 18.1 SDK and triggers ITMS-90725 in App Store Connect.
So this workaround - I believe - only fixes UE validation, not App Store SDK compliance.

I understand the validated setup mentions Xcode 26.1.1.
In my case I’m using Xcode 26.2, so I wanted to check whether this difference could explain why the build is still stamped with iOS 18.1 SDK.

I am using Unreal Engine 5.7.4 with Xcode 26.2 on macOS.

Apple has already started enforcing iOS 26 SDK (from April 28, 2026), but UE still builds the app with iOS 18.1 SDK (I submitted my build after enforcement was active for Testflight on 28th Apr at 2000 hrs (?), GMT, but Apple still allowing uploads in my case - but warning was active.

Details:

  • Xcode version: 26.2
  • iOS SDK (xcrun --show-sdk-version): 26.2
  • UE version: 5.7.4 (Launcher)
  • Apple_SDK.json updated:
    MainVersion: 26.2
    MaxVersion: 26.9.0
    Mapping: 26.2.0-19.1.5
  • I understand the Apple_SDK_Jason update is just a workaround to allow UE/Xcode detection, not a confirmed App Store compliance fix.

Result:

  • Build succeeds
  • Upload to App Store Connect succeeds
  • But warning:
    “This app was built with the iOS 18.1 SDK”

TestFlight works, but App Store submission is likely to fail.

Questions:

  1. Is UE 5.7.4 officially supporting iOS 26 SDK?
  2. Is there a known fix or workaround?
  3. Will this be fixed in 5.7.5 or 5.8?

Thanks.

1 Like

I’m not sure why they tell us to avoid Xcode 26.4 for now. I’m using that same version and all my UE projects compile and build fine against iOS 26 SDK with no errors…

Hi @Sensenok ,

Xcode 26.4 should be avoided as it includes a major toolchain update to Apple Clang 21.0.0. This version introduces significant updates to C++ support. Specifically upgraded is LLVM 19 to 21. It features stricter handling of consteval functions and implicit type conversions between different sizes. As such, any released builds of UE predating it will not compile out of the box and would require code edits or warning silencing.

Best regards.

1 Like

Hey @bsun31,

Would you mind sharing more details about how you’re going about building your iOS package for submission please?

  • Are you opening the intermediate Xcode project to build manually or are you packaging from the Editor?
  • What’s the output of xcode-select -p in Terminal?
  • Did you take at the pbxproj file of your Xcode project? What IPHONEOS_DEPLOYMENT_TARGET is it citing?
  • Did you take a look at the Info.plist in your generated IPA? What SDK version is it citing? Look for keys prefixed with “DT”.

Kind regards :victory_hand:

Hey @paul.georges

Apologies for the delayed response — it took me some time to properly inspect the generated Xcode project/archive details and gather the requested information.

Thanks again for the follow-up.

  1. I am building/submitting through Xcode Archive, not directly from the Unreal Editor. The Editor packaging route was not correctly detecting my identifier/certificates, so I generated the iOS Xcode project from UE5.7 and archived through Xcode manually.

  2. xcode-select -p output:

/Applications/Xcode.app/Contents/Developer

  1. I checked the generated Xcode project settings. The deployment target is set to:
iOS 15.0

  1. I also inspected the generated archive Info.plist inside the archived app package. The relevant values are:
DTPlatformVersion = 26.2
DTSDKName = iphoneos26.2
DTXcode = 2620
MinimumOSVersion = 15.0

However, App Store Connect still reports the warning:

"This app was built with the iOS 18.1 SDK"

One additional observation:

Even after the iOS SDK 26 enforcement date began, the upload itself was still accepted successfully into App Store Connect/TestFlight (with warning only, not rejection).

This particular archive/upload was completed successfully on:

28 Apr 2026 around 21:05

So the archive metadata appears to indicate the app is already being built with the iOS 26.2 SDK through Xcode 26, despite the upload warning still appearing.

I attached screenshots of both the archive metadata and the App Store Connect warning for reference.

Hopefully this helps identify the issue on the UE5.7/Xcode pipeline side, and perhaps it can be addressed in a future UE5.7 update or hotfix through the Epic Launcher.

Thanks again for investigating this.

Kind regards :victory_hand:

Bisan

Hey @paul.georges

Thanks for the helpful info.

I also tried building my app with Xcode 26.1.1. Unreal shows the current SDK as 26.1.1 during the build process, but when I try to validate the archived app in Xcode, it still gets rejected because the SDK is showing as iOS 18.

If you need any additional information to resolve this I’d be more than happy to share.

Regards

Here’s how I fixed it on my mac

The project was Blueprint-only, so Unreal was reusing the prebuilt UnrealGame-IOS-Shipping executable from the Launcher engine.

To force Unreal to build a fresh project-specific iOS executable, I added an empty C++ class:

Tools → New C++ Class → None

I named it something simple like:

ForceIOSBuild

No actual C++ code was needed.

Then I cleaned the old build folders:

rm -rf Binaries/IOS
rm -rf Binaries/Mac
rm -rf Intermediate
rm -rf Saved/Cooked/IOS
rm -rf Saved/StagedBuilds
rm -rf Saved/BuildGraph
rm -rf ~/Library/Developer/Xcode/DerivedData/*

After that I rebuilt the project in Shipping using Xcode 26.5.

The new archive executable finally showed:

sdk 26.x

instead of:

sdk 18.1

So the fix was simply: convert the Blueprint-only project to a C++ project with an empty class, clean everything, then rebuild so Unreal generates a new iOS executable instead of using the prebuilt engine binary.

1 Like

Hey @Mahdiyar ,

Oh right, thank you for the insight and workaround here! I’ll check in with the engineering teams to see what the path forward is to get this working out of the box for Blueprint-only projects.

@bsun31 is your project also a Blueprint-only project?

Thank you!

Kind regards

Hey folks,

@Mahdiyar I can confirm that the issue you bumped into will be fixed in Unreal Engine 5.8.

For the moment being, we are not planning on patching 5.7 with updated iOS binaries built with SDK 26. The workaround you’ve taken to get Blueprints projects that are built with previous versions of Unreal Engine to pass Apple submission is the correct workaround for now.

Kind regards,

Paul

Apologies for the delay, Paul. You’re right, mine is also a BP-only—I haven’t yet tried following his approach, though @Mahdiyar handled it beautifully. Thanks a million to him by leaving the insight and workaround for every develover having the same issue like us. I will certainly leave a note once I am done with my unfinished project. Thank you!

Best regards,

1 Like