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


          #5
          Originally posted by Milly01 View Post
          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
          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?
          Last edited by DK Buzzin; 07-21-2020, 12:28 PM.

          Comment


            #6
            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

            Comment

            Working...
            X