TN3118: Debugging your app’s launch screen
Understand why your app’s launch screen is not displayed or updated.
Overview
A Launch Screen appears instantly when your app starts up and is quickly replaced with the app’s first screen, giving the impression that your app is fast and responsive. As you upgrade your application’s launch screen you may discover that the old version still appears or that it appears empty. This article explains possible reasons and how to fix them.
Launch screen does not display properly
Check why your launch screen fails to display:
iOS displays an outdated launch screen. Your new Xcode build has not overwritten the old launch screen. Clean your build folder for your project. In Xcode, select your target, then select the menu Product, menu item Clean Build Folder. Remove the app from device or Simulator. Build and run the app again.
iOS displays the last shown view controller. When your app enters the background, iOS takes a snapshot of the app, and displays the snapshot on subsequent launches. If you want your launch screen to appear again, remove your app from the device, and run it again from Xcode.
For SwiftUI-based or UIKit-based apps that use a launch screen in its Information Property List:
Your
Info.plistis misconfigured. It is missing the UILaunchScreen key-value, or the UIImageName key-value does match with the image name what is found in the asset catalog. Be aware that case sensitivity is important.
For UIKit-based apps using a Storyboard Launch Screen:
The Launch Screen storyboard name doesn’t match what’s in the target settings. Select your Xcode target, goto the General tab, refer to the ‘App Icons and Launch Images’ section. The Launch Screen File setting should match the name of your launch screen storyboard found in the Project Navigator. To find out more about setting up your Launch Screen in Xcode, refer to Specifying your app’s launch screen.
[Image]
The image in your launch screen storyboard did not originate from the target’s asset catalog. If you are using static images in your launch screen, check to make sure the image originates from the product’s asset catalog as a JPG or PNG image.
Your Launch Screen storyboard’s initial view controller scene is not set as the initial view controller. Xcode will warn you: “Warning: Unsupported Configuration: ‘View Controller’ is unreachable because it has no entry points”. Select the view controller scene in your launch screen storyboard. Make sure Is Initial View Controller is checked.
[Image]
App launching with state restoration
Implement state restoration in your app so that the launch screen is used less often. iOS snapshots your app when it’s suspended and may use this snapshot instead of the launch screen the next time the app is launched. Users expect your app to be in the same state as when they left it. For more information on state restoration refer to About the UI restoration process.
Revision History
2023-07-25 Fixed some broken links.
2022-05-24 Made minor editorial changes.
2022-03-01 First published.
See Also
Latest
TN3205: Low-latency communication with RDMA over ThunderboltTN3206: Updating Apple Pay certificatesTN3179: Understanding local network privacyTN3190: USB audio device design considerationsTN3194: Handling account deletions and revoking tokens for Sign in with AppleTN3193: Managing the on-device foundation model’s context windowTN3115: Bluetooth State Restoration app relaunch rulesTN3192: Migrating your iPad app from the deprecated UIRequiresFullScreen keyTN3151: Choosing the right networking APITN3111: iOS Wi-Fi API overviewTN3191: IMAP extensions supported by Mail for iOS, iPadOS, and visionOSTN3134: Network Extension provider deploymentTN3189: Managing Mail background traffic loadTN3187: Migrating to the UIKit scene-based life cycleTN3188: Troubleshooting In-App Purchases availability in the App Store