App crashes on iOS26

It looks like any app built with UE 5.3, 5.4, or 5.5 will crash on iOS 26. However, they work fine on iOS 18. For my testing, I used the FirstPerson sample project that you can create in the Project Browser. I also tested 5.2 and 5.6, and they both work fine on iOS 26.

I’ve been looking at this for a few weeks and haven’t had any luck figuring out what is going on. I thought initially that it might be related to this post:

https://forums.unrealengine.com/t/game-crashes-with-ios-26-beta/2634510/3

However, in this instance, it appears that the issue was resolved by cherry-picking a commit for 5.7.

https://github.com/EpicGames/UnrealEngine/commit/9937d9f9ccb544bac6ff7db819c3930f224206a8#diff-f4c7995bb180aeddaf8a365ef1297faeef251599ebbaeb7d3c6bff16c9c368a9

However, in my testing, the crashing issue is resolved in 5.6, so this doesn’t quite make sense.

I did attempt to move this file into a custom build of 5.4, but had difficulty as it has includes to other files that didn’t exist in 5.4. And what I was able to do, failed to resolve the issue.

As I have replicated this in the default FirstPerson project, I know the issue has nothing to do with my app. An app from 5.2 works fine, so it seems that a change in 5.3 was the initial cause. Then something in 5.6 resolved the issue.

I’ve attached my iOS Crash Report and Console Output for my UE5.3 test app.

MacOS 15.7

Xcode: 16.2

iOS 26 & 26.1

UE 5.3, 5.4, 5.5

In my earlier testing, I did try Xcode26 without any luck. But that was before I started testing using the FirstPerson project, so more in-depth testing with Xcode 26 might be worthwhile

I have not been able to test on a different machine, as I only have the one Mac.

I’m continuing to look for a solution, but any help would be appreciated.

thx-e

Steps to Reproduce
Use a Mac with Xcode 16.2

Start up UE 5.3, 5.4, or 5.5 from the Epic Games Launcher.

From the Unreal Project Browser, choose Games > First Person with these settings:

C++

Target: Mobile

Quality: Scalable

Start content: T

Raytracing: F

In your Project Settings, use Modern Xcode. Fill in a valid Developer ID and Bundle ID and other info.

Connect your iOS 26/iPadOS 26.

From the Platforms menu in UE, choose your device under Quick Launch. Wait for UE to build and launch the app on your device. Watch the app instantly crash. The app will still be on your device so you can attempt to run it again and see it crash.

Hi Eric,

It appears this was fixed by this CL in 5.6, in particular the diffs to ApplePlatformMemory.cpp. The removal of the CanOverallocateVirtualMemory from the BINNED2 case removed the allocation by the NSRegularExpression at init time.

Best regards.

Thanks, I can confirm that this is a fix for the issue.

Only the ‎Engine/Source/Runtime/Core/Private/Apple/ApplePlatformMemory.cpp‎

file needs to be changed. The offending code is slightly different in 5.3, 5.4 & 5.5, but it appears to all be doing the same thing.

NSLog(@"MallocBinned2 requested but com.apple.developer.kernel.extended-virtual-addressing entitlement not found. Check your entitlements. Falling back to Ansi.\n");
            AllocatorToUse = EMemoryAllocatorToUse::Ansi;
            return;

It looks like it’s attempting to check if you have the extended virtual addressing entitlement and is failing that check, and then setting the Memory allocator to Ansi. And it appears that iOS26 does not like Ansi. So you can change that to

EMemoryAllocatorToUse::Binned2;Or you can remove the IF statement completely.

I only tested in UE5.4, but it seems reasonable to expect that the fix will work in 5.3 & 5.5 as well.

I only test in iOS 18 and iOS 26, so I have no idea if this fix would have issues in earlier versions of iOS.

thanks

eric

Hi Eric,

Glad the CL resolved the issue for you.

Best regards.