Mobile Development 10 min read

Replacing iOS LaunchImage with LaunchScreen.storyboard: Background, Preparation, Implementation, and Troubleshooting

This article explains why Apple requires apps to use LaunchScreen.storyboard instead of static LaunchImage after June 30 2020, details the preparation steps, presents three implementation approaches, and discusses device‑specific adaptation problems and persistent black‑screen issues with code examples.

360 Tech Engineering
360 Tech Engineering
360 Tech Engineering
Replacing iOS LaunchImage with LaunchScreen.storyboard: Background, Preparation, Implementation, and Troubleshooting

Apple mandates that apps submitted after June 30 2020 must load their launch screen via LaunchScreen.storyboard rather than the older static LaunchImage method. The official documentation provides guidance, and the change affects how the app’s initial UI is presented.

Technical background : LaunchImage predates iOS 8 and appears earlier in the asset pipeline, while LaunchScreen.storyboard has higher default priority and offers more flexible layout capabilities. Mixing the two can cause unpredictable behavior.

Preparation work includes removing the old launch image settings from the project’s Info.plist , deleting legacy launch images from the asset catalog, and configuring the new storyboard as the launch screen in Xcode. The article also notes the importance of clearing cached launch screen data in /Library/SplashBoard and /Library/Caches/Snapshots when version changes occur.

Implementation options :

Use a single image with aspect fill – minimal resources but may crop on different screen sizes.

Create an image set containing multiple resolutions for iPhone and iPad – avoids stretching but increases app size.

Split the launch screen into separate UI elements (e.g., UILabel , UIImageView ) within the storyboard, allowing precise auto‑layout handling and better adaptation across devices.

The author recommends the third approach as the most reliable and aligns with Apple’s recommendations.

Device‑specific issues were observed on certain notch ("刘海") devices such as iPhone XS Max on iOS 12, where the launch screen displayed correctly but the main UI extended into the safe area, causing the tab bar to be misplaced. The problem was traced to a custom macro Is375x812hScreen() used to detect screen sizes. Updating the macro to also check for 896‑point heights resolved the layout error.

Black‑screen problems occur when downgrading an app version after changing the launch assets. Various attempts—clearing caches, renaming assets, adjusting UIImageView background colors—did not consistently fix the issue. The author notes that the problem appears tied to iOS’s launch‑screen caching mechanism and suggests reinstalling the app as a temporary workaround.

Overall, the guide provides step‑by‑step instructions, code snippets, and practical tips for migrating to LaunchScreen.storyboard , while highlighting pitfalls and debugging strategies for developers.

mobileuiiOStroubleshootingStoryboardLaunchImageLaunchScreen
360 Tech Engineering
Written by

360 Tech Engineering

Official tech channel of 360, building the most professional technology aggregation platform for the brand.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.