Invalid Bundle Error - "requires launch storyboard"
Asked Answered
P

10

372

I keep getting this error when I try to submit my app to the store using Xcode:

ERROR ITMS-90475: "Invalid Bundle. iPad Multitasking support requires launch storyboard in bundle 'com.companyname.appname.'"

Anyone know what this error really means?

Proteus answered 14/9, 2015 at 5:24 Comment(5)
Please note I have just updated to Xcode 7 GM today and already submitted an app to the store.Proteus
So I was using Xcode 7 GM when submitting.Proteus
Did you figure this out?Varietal
Nope I went to sleep.Proteus
Mods, what is up with all these questions having 20 copy pasta answers, which besides that, are wrong, too?Daybreak
S
732

This is because you need to specify how your app is supposed to handle multitasking on iPad.

If you don't want to handle multitasking right now, you can simply disable it by going to the "General" tab of your target:

enter image description here

Supernormal answered 14/9, 2015 at 11:24 Comment(12)
Does this only apply if you are using Split View Controller on your iPad? I successfully uploaded last night to iTunes Connect, then this morning the error appeared when I made a very minor update. So I am guessing Apple just added in this check if your storyboard is using split view controller.Poindexter
@Poindexter As far as I know, this apply to every iPad or universal app.Monochromat
Is there any way to get this to work without checking the "Requires full screen" check box?Gay
@Gay Yes: make your app compatible with iPad multitasking and there is no need to check the box. The "Requires full screen" check box is just to use in case your app can't handle multitasking at the moment. Anyway your app need to specify to the OS if it's compatible or not with multitasking, otherwise Apple doesn't let you to submit to the App Store.Monochromat
Why didn't they make this the default and require developers to opt in to multi-tasking? The app submission process was already complicated enough!Implead
@RupertRawnsley Probably because they want that the developers make their apps compatible with multi-tasking by default.Monochromat
My app DOES use multitasking and it does not make use of storyboards, the error states a "launch storyboard" is required. If I have to incorporate storyboards into my app at this 99th hour it will be a disaster.Feathered
@MatthysDuToit was it a disaster, or were you able to do it in that one hour you had left?Enolaenormity
@DanRosenstark I was delayed, but it wasn't a disaster. I ended up side-stepping storyboards, being almost 3 years later I must admit I can't remember how. I'm still not fond of storyboards and I still avoid them where possible.Feathered
@MatthysDuToit while I was mostly joking -- it's very rarely a disaster, and usually a tiny glitch on the timeline which you don't even remember later -- you make good points about Storyboards. Personally, I feel torn between needing to know how to work with Storyboards and my dislike for anything that's not pure code. Personally I use them sparingly.Enolaenormity
But there is no storyboard for SwiftUI app.Brownley
@Brownley Yes there is a storyboard, called "LaunchScreen.storyboard" which is used when you launch the app.Monochromat
G
41

I solved the problem in this way, see here:

If you must opt out of Slide Over and Split View, do so explicitly by adding the UIRequiresFullScreen key to your Xcode project’s Info.plist file and apply the Boolean value YES.

Gronseth answered 14/9, 2015 at 9:48 Comment(0)
P
36

You need to add a Launch Screen (Xcode > File > New). Under iOS > User Interface you select "Launch Screen" to add it to the project.

For the iPad you need to support all 4 orientations.

Select in Xcode your target file, and under the General Tab, go to the "App icons and Launch Images". Here you select the Launch Screen file you created. When you launch the app you'll see the launch (bitmap) images are not used, but the Launch Screen Storyboard.

Philosophy answered 19/9, 2015 at 18:11 Comment(4)
This is the best answer. Note the complaint is that you need a launch storyboard - my app had a XIB file from some earlier version of XCode, but this is no good for iOS 9.Headwind
This is the alternative 'fix', if you want to handle the multitasking. If you have a current project and just need it to go through setting the Requires Full Screen flag is the quick fix, but you should probably look into using storyboards.Sacrilege
Best one! I update my old project and this is exactly what I need.Revers
Not sure why, but this doesn't work for me. I have a storyboard added it and my app does support all orientations. It works well on my iPad but I get the same error when I submit the appSped
A
33

You can either do it as André showed or directly add:

<key>UIRequiresFullScreen</key>
<true/>

On your .plist file.

Autoicous answered 23/9, 2015 at 4:26 Comment(2)
Since Xcode 7.2 the general tab is gone and this seems to be the way to go now.Lourdeslourie
What? No it isn't. The General tab is not gone in Xcode 7.2.Centeno
V
21

Updated for Xcode 15.2

Setting the launch storyboard should be as simple as selecting the required storyboard as Launch Screen File in the "General" settings for the target. This not only avoids spelling mistakes, it also ensures that the storyboard is included in the bundle.

However, if the storyboard has been selected in this way and support for multiple windows is included, uploading to the App Store will fail as per the OP:

Asset validation failed

Invalid bundle. Because your app supports Multitasking on iPad, you need to include the LaunchPage.storyboard launch storyboard file in your app bundle

Screenshot

One way to resolve this is to check "requires full screen" (see other answers), but this will disable split screen functionality on an iPad -> not good.

How to fix without requiring full screen for the app

The key thing is, the name of the storyboard must not have a .storyboard extension.

  1. In Xcode, go to your build target and select the General tab.
  2. In the section "App Icons and Launch Screen", select a storyboard file.
  3. Tap the name of the selected storyboard file and remove the .storyboard extension, then press return.

Recording

That's it!

Various answered 9/12, 2022 at 14:57 Comment(4)
Just because you got the same error doesn't mean the OP's problem is the same as yours was. It might be that the OP has a spelling error in the storyboard name, or the storyboard might be specified correctly but not actually exist in the bundle.Giggle
Thanks Caleb for your feedback. Post edited to describe the circumstances better.Various
This doesn't work for me. As soon as I start editing the name of the Launch Screen File in the text field, the name just completely disappears.Campanology
@Campanology Are you on an older version of Xcode? That's how it was in Xcode 14.2. You might find the solution works anyway, you just can't see the name of the file any more.Various
D
9

If you want to support split views in iPad, in your info.plist file, set just "LaunchScreen" as the value for key "UILaunchStoryboardName", instead of "LaunchScreen.Storyboard" and you need to support all 4 orientations for iPad.

Digestive answered 25/11, 2022 at 14:35 Comment(1)
This worked for me in 2023, Xcode 14, react-native 0.71Rawalpindi
B
9

I wanted to allow split screen, and I already had a launch screen storyboard. Ends up I needed to remove the ".storyboard" from my plist. See UILaunchStoryboardName.

Go to Targets > Info > "Launch screen interface file base name" and change it to LaunchScreen.

The text that needs to be fixed

Brython answered 27/3, 2023 at 14:48 Comment(0)
B
8

If you are using Cordova, you might want to use the cordova-ios-requires-fullscreen plugin (see How to disable iOS9 multitasking through Ionic/Cordova?)

Update: you can also use the cordova-plugin-ipad-multitasking, which seems to also prevent another issue (ITMS-90474)

Update: this should now be fixed using Cordova tools 5.4 without the need for these plugins.

Bravo answered 15/10, 2015 at 14:57 Comment(1)
Issue still there on cordova 6.5.0Paquito
I
2

IF you ONLY want to set RequiresFullScreen For iPhone, and support iPad Multitasking, try this:

<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIPad.storyboard</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>

enter image description here

LaunchScreenIPad.storyboard is the name of LaunchScreen for iPad.

iPhone will still use Launch Images Source pictures.

Apple Document Ref: Creating Platform- and Device-Specific Keys

Idleman answered 23/3, 2018 at 8:29 Comment(1)
this one works!!! if you set ' Requires full screen', you iPad will not supports multitasking(spliting screen).Microsurgery
D
-1

If you use Blazor MAUI you need to add UILaunchStoryboardName entry into info.plist file:

<key>UILaunchStoryboardName</key>
<string>MauiSplash</string>
Diu answered 21/8, 2023 at 19:52 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.