iPhone X and iPad Pro resolution support on Delphi 10.3.1

by Feb 28, 2019

With Delphi 10.3.1, you can build applications for the iPhone X series devices and iPad Pro with native resolution support.

To support the newer resolutions, the overall configuration and some of the image names have changed. While this applies to new projects, existing projects opened with 10.3.1 require a couple of quick project changes.

  • Go to the Deployment Manager window
  • Click on the Revert to Default button

The steps above, provided by MVP Dave Nottage (thanks Dave!), work for the most common cases, but they won’t preserve the existing configuration. See “Additional Information” below for steps to manually change your existing project configuration, instead.

Additional Information

While working to add support for more launch images (addressing the iPhone X family and the iPad Pro family of devices) for RAD Studio 10.3.1, we decided to change the naming scheme used in already existing launch image filenames for consistency.

For this reason, there is a potential issue for device models whose launch image files were renamed in the 10.3.1 Rio release. The following table summarizes the changes in the launch image filenames and the affected device models:

Old launch image filename New launch image filename Affected device models
Default-568h@2x.png Default-640w-1136h@2x.png iPhone 5, 5s, 5c and SE plus iPod touch (6th generation)
Default-667h@2x.png Default-750w-1334h@2x.png iPhone 6, 6s, 7 and 8
Default-736h@3x.png

Default-Landscape-736h@3x.png

Default-1242w-2208h@3x.png

Default-Landscape-1242w-2208h@3x.png

iPhone 6 Plus, 6s Plus, 7 Plus and 8 Plus
Default-812h@3x.png

Default-Landscape-812h@3x.png

Default-1125w-2436h@3x.png

Default-Landscape-1125w-2436h@3x.png

iPhone X and XS
Default-Portrait@2x~ipad.png

Default-Landscape@2x~ipad.png

Default-1536w-2048h@2x~ipad.png

Default-Landscape-1536w-2048h@2x~ipad.png

iPad Air, Air 2, Mini 2, Mini 3, Mini 4, 9.7-inch (4th generation), 9.7-inch (5th generation), 9.7-inch (6th generation) and 9.7-inch Pro

In order to enable the native resolution of the iPhone XS model, the Info.plist file must have the following declaration:

<dict>

 <key>UILaunchImageSize</key>

 <string>{375, 812}</string>

 <key>UILaunchImageName</key>

 <string>Default-1125w-2436h</string>

 <key>UILaunchImageMinimumOSVersion</key>

 <string>11.0</string>

 <key>UILaunchImageOrientation</key>

 <string>Portrait</string>

</dict>

<dict>

 <key>UILaunchImageSize</key>

 <string>{375, 812}</string>

 <key>UILaunchImageName</key>

 <string>Default-Landscape-1125w-2436h</string>

 <key>UILaunchImageMinimumOSVersion</key>

 <string>11.0</string>

 <key>UILaunchImageOrientation</key>

 <string>Landscape</string>

</dict>

The launch images are being declared in the Info.plist file using the new naming scheme, but the launch image files are being deployed with the app using the old naming scheme (from the 10.3 Rio release or older versions).

This naming scheme mismatch is causing the iOS runtime to not be able to choose a launch image for the iPhone XS model and its native resolution is disabled. Making the changes outlined above should resolve this, in case “Revert to Default” in the Deployment Manager doesn’t work.

Further information can be found in the following Quality Portal entry: RSP-23800