Skip to content
Back to Blog
·2 min read

ITMS-90870 Missing launch screen: what it means and how to fix it

App Store Connect rejects an upload built with the iOS 27 SDK or later when the Info.plist has no launch screen key. The exact message, the four keys it accepts, and the one-key fix, taken from Apple's technote.

If your upload fails with ITMS-90870, App Store Connect found no launch screen configuration in the app's Info.plist. This is the message as Apple words it:

ITMS-90870: Missing launch screen. Apps built with the iOS 27 SDK or later must
provide a launch screen using an Xcode storyboard or UILaunchScreen. Make sure the
Info.plist contains one of the following keys: UILaunchStoryboardName,
UILaunchStoryboards, UILaunchScreen, UILaunchScreens.

What it means

Starting with the iOS 27 and iPadOS 27 SDK, App Store Connect requires a launch screen configuration. A build made with that SDK and uploaded without any of the four keys above is rejected at upload, before review. Apple describes the requirement in the technote TN3208: Preparing your app's launch screen to meet App Store requirements.

How to fix it

  1. Open the app target's Info.plist (or the Info tab of the target in Xcode).
  2. Check whether one of these keys is present: UILaunchStoryboardName, UILaunchStoryboards, UILaunchScreen, UILaunchScreens.
  3. If none is, add UILaunchScreen to configure a launch screen. Xcode includes it by default in new SwiftUI projects, so an older project that was started before that default is the usual place the key is missing. If you need a custom layout, use a launch screen storyboard and set UILaunchStoryboardName instead.
  4. Archive again and upload a new build. The check runs on each upload, so the old build number cannot be reused.

Read the technote for what you can put inside UILaunchScreen; this page only covers the keys Apple's error message names.

Check it before you upload

Paste your Info.plist into the Info.plist checker to see which launch screen keys it has before you spend a build number. If you already have the error text, paste the whole email or Xcode output into the ITMS error lookup: it explains every ITMS code in it, with the Apple page each explanation comes from.

Related upload errors

  • ITMS-90725, SDK version issue: the build used an SDK older than the minimum App Store Connect requires. The required SDK changes every year, so rebuild with the Xcode release Apple's Upcoming Requirements page names.
  • ITMS-91053 and ITMS-91055: privacy manifest problems. 91053 is a missing declaration for an API that needs a reason, 91055 is a reason value that is not a valid reason code for that API category. Both are in the lookup with the forum thread they come from.

Apple does not publish a list of ITMS codes, and messages are reworded with each year's SDK rules, so the message you get may differ from the one quoted here.

Written by

Building local-first Mac & iOS productivity apps at Obelisk Club. About the author →