iPhone SE 2020 not supported yet?

I’m getting the following error when trying to run on device (UE 4.23 4.24.3):

The “supported devices” page mentions iPhone SE, although it’s probably the older version. How often does support for new devices get added?

Is anyone using a newer iPhone SE with UE? If so, what version of UE?

Try 4.24 or 4.25 for better support

Sorry, had that wrong - I 'm on 4.24.3. I can’t upgrade too 4.25 yet because of a plugin that’s not compatible with 4.25 yet.

If you have access to the 4.25 source, (and you are building the engine from source) you can add the iPhone SE yourself by copying where it is referenced. It is only referenced in three files, so it’s not that much work. I’ll list them here in case you don’t have access to 4.25.

IOSPlatformMisc.h: Add an ‘IOS_IPhoneSE2’ entry to the EIOSDevice enum (Around line 153, just before the IOS_Unknown entry)


.
.
.
IOS_IPodTouch7,
IOS_IPad7,
IOS_IPhoneSE2,
IOS_Unknown,
};


and also add it to the array of device names around line 208:



.
.
.
TEXT("IPodTouch7"),
TEXT("IPad7"),
TEXT("IPhoneSE2"),
TEXT("Unknown"),
};


IOSPlatformMisc.cpp: Add an ‘else’ to handle Major version 12, minor version 8 around line 633



else if (Major == 12)
{
   if (Minor < 3)
   {
      DeviceType = IOS_IPhone11;
   }
   else if (Minor < 5)
   {
      DeviceType = IOS_IPhone11Pro;
   }
   else if (Minor < 7)
   {
      DeviceType = IOS_IPhone11ProMax;
   }
   else if ( Minor == 8 )
   {
      DeviceType = IOS_IPhoneSE2;
   }
}


IOSPlatformApplicationMisc.cpp: add a case for the new device in ComputePhysicalScreenDensity around line 277



case FPlatformMisc::IOS_IPhoneXR:
case FPlatformMisc::IOS_IPhone11:
case FPlatformMisc::IOS_IPhoneSE2:
ScreenDensity = 326;
Accuracy = EScreenPhysicalAccuracy::Truth;
break;


And you will have to update the magic number at the top of the function so it matches the new value for IOS_Unknown:



static_assert( FPlatformMisc::EIOSDevice::IOS_Unknown == 46, "Every device needs to be handled here." );


If you’re using the prebuilt engine I’m afraid you will have to wait until your problematic plugin supports 4.25 and upgrade when it does.

Hope that helps,

Matt

WHAT A LIFESAVER! Now my app no longer crashes after the splash screen.HOWEVER

My problem now is the resolution when playing my game with the SE is super ******. All of the UI is jumbled and the in game graphics look stretched and aliased compared to normal. Might be something to do with the lack of a device profile?

Hey! Have you found the fix for the messed UI? I haven’t tested yet on the Iphone SE2 since I don’t own it, but I want to be sure that everything will be fine on the device…
Thanks

Yes, as I predicted, you need to add a device profile in the engine using the same “IOS_IPhoneSE2” tag. I copied the settings from a different phone with the same resolution and it worked things out.

Go to Engine Folder -> Engine -> Config -> “BaseDeviceProfiles” that is the file you want to edit. You need to add a line for IOS_IPhoneSE2 near the top of the document, i put it under the iPhone 11

Then you need to make a profile for it near the bottom of the document, again a put it under the iPhone 11 max pro settings.

Here’s the settings that worked for me:
[iPhoneSE2 DeviceProfile]
DeviceType=IOS
BaseProfileName=IOS
+CVars=r.MobileContentScaleFactor=2
+CVars=r.BloomQuality=1
+CVars=r.DepthOfFieldQuality=1
+CVars=r.LightShaftQuality=1
+CVars=r.RefractionQuality=1

You’re welcome, that took me hours to figure out.

You should add me on discord if you want, if we are both working on mobile projects right now.

Gotta be the same process for iPhone 12? o.O