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 is the key that opts an iPad app out of resizing, and on iPhone Duo it no longer buys that. Apple says the device continues to honour the key, but the app still resizes when the device opens and closes, and it scales on the inner display, including in Split View multitasking — which all apps take part in. Carrying the key leaves you with a scaled app instead of an exempt one, so remove it and fix the layout underneath, which is the rest of this checklist.
Use the App Resizability skill
Xcode 27.1 renames the app modernization skill, introduced in the WWDC26 talk Modernize your UIKit app, to App Resizability, and extends it to SwiftUI and iPhone Duo. Apple presents it as a way to check your app against the adaptive layout best practices. 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.