The launch screen is the first thing a user sees, and it is easy to overlook because it is not part of your view code.
Check the launch screen
A launch screen must scale to any size. Use a launch screen storyboard, or the UILaunchScreen dictionary, with constraint-based layout — never a fixed-size image asset per device.
<key>UILaunchScreen</key>
<dict>
<key>UIColorName</key>
<string>LaunchBackground</string>
<key>UIImageName</key>
<string>LaunchLogo</string>
</dict>
A centred logo on a solid colour scales to any display without a cut asset. A full-bleed splash image cut for a 2.17 aspect ratio will be cropped hard on a 1.42 display.
Check for legacy full-screen requirements
grep -rn "UIRequiresFullScreen" ./**/Info.plist
UIRequiresFullScreen opts an app out of resizing. Since all apps participate in Split View multitasking on iPhone Duo, an app carrying this legacy key is fighting the platform. Remove it and fix the layout underneath — which is the rest of this checklist.
Use the App Resizability skill
Xcode 27.1 extends the app modernization skill, previously “Modernize your UIKit app”, to cover SwiftUI and iPhone Duo under the name App Resizability. It automates a meaningful share of the mechanical work here. Run it before hand-editing, then review its changes.
How to verify
Cold-launch the app on both displays and in Split View. The launch screen should fill the space cleanly and hand over to your first real screen without a visible size jump.