无效的Bundle错误 - "需要启动故事板"

369

当我使用Xcode提交应用程序到商店时,我一直遇到这个错误:

ERROR ITMS-90475: "无效的捆绑包。iPad多任务支持需要在捆绑包'com.companyname.appname.'中启动故事板"

有人知道这个错误的真正含义吗?


请注意,我今天刚刚更新到Xcode 7 GM,并已经将一个应用程序提交到商店。 - matthias_b_nz
1
我在提交时使用的是 Xcode 7 GM。 - matthias_b_nz
1
你解决了这个问题吗? - andygeers
73
没错,我去睡觉了。 - matthias_b_nz
版主们,这些问题为什么会有20个复制粘贴的答案,而且除此之外,它们还是错误的呢? - user5306470
10个回答

728

这是因为您需要指定应用程序在iPad上如何处理多任务处理

如果您现在不想处理多任务处理,可以通过进入目标的"General"选项卡来简单地禁用它:

输入图像描述


4
有没有办法在不选中“需要全屏”复选框的情况下使这个起作用? - msimons
5
@msimons 是的:使您的应用程序与iPad多任务处理兼容,就无需勾选“要求全屏”复选框。该复选框仅在您的应用程序暂时无法处理多任务处理时使用。无论如何,您的应用程序需要向操作系统指明是否与多任务处理兼容,否则苹果将不允许您提交到应用商店。 - André Rodrigues
43
为什么他们不把这个设置作为默认值,并要求开发人员选择多任务处理呢?应用提交的过程已经够复杂了! - Rupert Rawnsley
8
可能是因为他们希望开发者默认情况下使他们的应用程序与多任务处理兼容。 - André Rodrigues
1
我的应用程序确实使用了多任务处理,但没有使用storyboards。错误提示要求必须有“启动故事版”。如果我在最后时刻不得不将storyboards加入到我的应用中,那将是一场灾难。 - Matthys Du Toit
显示剩余7条评论

41
我是这样解决问题的,参见此处

如果您必须选择退出滑动查看和分屏视图,请通过向Xcode项目的Info.plist文件中添加UIRequiresFullScreen键并应用布尔值YES来显式地执行此操作。


36

您需要添加一个启动屏幕(Xcode > 文件 > 新建)。 在 iOS > 用户界面 下选择 "启动屏幕" 将其添加到项目中。

对于iPad,需要支持所有4个方向。

在Xcode中选择目标文件,在常规选项卡下,进入“应用程序图标和启动图像”。 在此处选择您创建的启动屏幕文件。 当您启动应用程序时,将不会使用启动(位图)图像,而是使用启动屏幕Storyboard。


1
这是最好的答案。请注意,投诉是您需要一个启动storyboard - 我的应用程序有一个来自早期XCode版本的XIB文件,但这对iOS 9没有用。 - Bryan
这是一种替代的"修复"方法,如果你想处理多任务。如果你有一个当前的项目,只需要通过设置Requires Full Screen标志来进行快速修复,但你应该考虑使用storyboards。 - Russ
最好的一个!我更新了我的旧项目,这正是我所需要的。 - LE SANG
1
不确定为什么,但这对我不起作用。我已经添加了一个故事板,并且我的应用程序支持所有方向。它在我的iPad上运行良好,但当我提交应用时出现相同的错误。 - Sebastian Rieger

32
你可以按照安德烈展示的方法操作,或者直接添加:
<key>UIRequiresFullScreen</key>
<true/>

在您的 .plist 文件中。


1
自从Xcode 7.2版本以后,通用选项卡就消失了,这似乎是现在的使用方式。 - Peege151
3
什么?不是这样的。在 Xcode 7.2 中,"General" 选项卡并没有消失。 - mbeaty

9
在Xcode 14.2中, 设置启动故事板应该就像在目标的"General"设置中选择所需的故事板作为启动屏幕文件一样简单。这不仅避免了拼写错误,还确保了故事板包含在包中。然而,如果包括多个窗口的支持(即,如果未勾选需要全屏),则上传到App Store可能会失败。
如果以这种方式配置了故事板,那么问题可能是因为故事板的名称包括.storyboard扩展名,这是不应该的。可以在不勾选需要全屏的情况下解决这个问题:
1. 在Xcode中,转到您的构建目标并选择"General"选项卡。 2. 在"App Icons and Launch Screen"部分,检查是否选择了一个故事板文件,并且它是否有一个.storyboard扩展名。 3. 如果是->点击故事板的名称进行编辑,删除.storyboard扩展名并按回车键。 4. 就这样!故事板的名称将不再显示,但问题将得到解决。

仅仅因为你遇到了相同的错误,并不意味着原帖作者的问题与你的相同。可能是原帖作者在故事板名称中拼写错误,或者故事板被正确指定但实际上不存在于捆绑包中。 - Caleb
感谢Caleb的反馈。已编辑帖子以更好地描述情况。 - Benzy Neez

8

问题仍然存在于Cordova 6.5.0上。 - Paranoid Android

8

我想允许分屏,而我已经有了一个启动画面的故事板。结果我需要从我的plist中删除".storyboard"。请参见UILaunchStoryboardName

前往目标 > 信息 > "启动屏幕接口文件基本名称" 并将其更改为 LaunchScreen

The text that needs to be fixed


8
如果你想在iPad上支持分屏视图,在你的info.plist文件中,将"UILaunchStoryboardName"的键值设为"LaunchScreen",而不是"LaunchScreen.Storyboard",同时需要支持iPad的所有4个方向。

这在我使用的2023年、Xcode 14和React Native 0.71中有效。 - jakeforaker

2
如果你仅仅想要为iPhone设置RequiresFullScreen,并且支持iPad多任务处理,可以尝试以下方法:
<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIPad.storyboard</string>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>

enter image description here

LaunchScreenIPad.storyboard 是 iPad 的启动画面的名称。

iPhone 仍将使用 Launch Images Source 图片。

苹果文档参考: 创建平台和设备特定的键


这个可以用!!!如果你设置了“需要全屏”,你的iPad将不支持多任务(分屏)。 - evevF

-1
如果你使用 Blazor MAUI,你需要将 UILaunchStoryboardName 条目添加到 info.plist 文件中。
<key>UILaunchStoryboardName</key>
<string>MauiSplash</string>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接