Announcement

Collapse
No announcement yet.

iPhone SE 2020 not supported yet?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    iPhone SE 2020 not supported yet?

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

    [UE4] Fatal error: [File:/Users/build/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/IOS/IOSPlatformMisc.cpp] [Line: 700]
    This IOS device type is not supported by UE4 [iPhone12,8]
    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?
    Last edited by indiejames; 06-23-2020, 09:16 PM.

    #2
    Try 4.24 or 4.25 for better support

    Comment


      #3
      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.

      Comment


        #4
        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)

        Code:
        .
        .
        .
        IOS_IPodTouch7,
        IOS_IPad7,
        IOS_IPhoneSE2,
        IOS_Unknown,
        };
        and also add it to the array of device names around line 208:

        Code:
        .
        .
        .
        TEXT("IPodTouch7"),
        TEXT("IPad7"),
        TEXT("IPhoneSE2"),
        TEXT("Unknown"),
        };
        IOSPlatformMisc.cpp: Add an 'else' to handle Major version 12, minor version 8 around line 633

        Code:
        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

        Code:
        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:

        Code:
        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
        Last edited by Milly01; 06-30-2020, 06:30 AM.
        http://www.poolnationfx.com/
        http://www.poolnationvrgame.com/

        Comment

        Working...
        X