Xcode 7 Beta警告:界面方向和启动故事板

133

我在 Xcode 7 beta 中打开了我的项目,出现了以下警告,而在 Xcode 6 中我没有遇到这些警告:

 All interface orientations must be supported unless the app requires
 full screen.


 A launch storyboard or xib must be provided unless the app requires
 full screen.
该应用程序只针对设备使用纵向(Portrait)方向,并且我已将其设置为该方式。我还为iPhone和iPad界面准备了storyboard。我无法确定我为什么会收到这些警告。这是Xcode 7 beta的错误吗?

听起来像是个bug。请查看苹果开发者论坛。作为测试人员的乐趣 :p - Sam B
8个回答

275

这个警告是iOS 9引入的新功能,因为它支持具有多窗口支持的可调整大小的应用程序。以前,应用程序会自动缩放到具有不同硬件显示分辨率的新设备上(基本上是iOS检测支持的界面分辨率的方法)。现在,支持多窗口的应用程序必须通过包括适用于所有设备屏幕类型的启动图像或故事板来定义它们支持的分辨率。

除非您正在重新编写应用程序以支持多窗口,否则您将需要“全屏”。这是向iOS发出的提示,表明您不支持多窗口,并使iOS 9在这方面的工作方式与以前的版本相同。

因此,如果您正在提交iOS 9的应用程序更新,并且您不支持多窗口,则只需进入项目目标设置,选择“常规”,在“部署信息”下查找名为“需要全屏”的复选框。选中此框即可消除警告。

这肯定不是一个错误。如果出现此警告,则您的应用程序可能在提交过程中遇到问题。我还不确定这一点,因为我还没有使用iOS 9 GM Seed提交应用程序,但我肯定会选中此框 :-)


4
这个答案比目前领先的那个好多了。感谢你解释了这个变化的原因以及全屏设置实际上是什么。 (我原本认为它是用来去掉标题栏的,但事实并非如此。) - natevw
@natevw,但并不像那个告诉你“只需勾选所有该死的框”那么简洁。这个答案让我相信我需要一堆新的启动屏幕图像来消除警告... - dcow
1
@dcow - 嗯,那你读错了。我明确说明了你只需要添加启动图像或勾选“需要全屏”框。这些事情很少有简单的答案...它取决于你想要实现什么。 - Simon Tillson
1
@SimonTillson,你误读了我的评论,显然没有看下面的答案。我不是在谈论需要全屏框。实际的解决方法是支持所有方向。这不需要添加启动图像。它只是意味着确保在常规项目设置中的设备方向下勾选所有框。也许你是通过建议修复为“包括所有设备屏幕类型的启动图像或故事板”来暗示这一点,但正如我所说,这并不像明确告诉你那么简洁。 - dcow
@dcow 当然,抱歉如果我看起来有点恼怒。我想我们都为了更全面的理解做出了贡献,没有完美的答案... - Simon Tillson
显示剩余3条评论

63

只需进入你的目标页面,点击“常规”选项卡,在“部署信息”部分找到“需要全屏”,勾选它即可。 :)

很容易吧,对吧?

顺便说一句,这并不是最好的解决方案。将会有更多更好的解决方案出现。但当我回答这个问题时,我只考虑如何消除警告。我没有解释为什么要这样做,而只是解释了如何解决问题。Xcode beta版本可能会改变其功能,所以我只在那个早期时间提供了一个“解决方法”。因此,如果您认为我的解决方案是权宜之计,请投票支持其他更好的答案。但这并不是投票反对的理由。谢谢:)


15
这绝不是解决方案,只是一个草率的权宜之计。尊重地说,我不同意您的答案。 - kbpontius
6
你期望的解决方案是什么?希望通过魔法般地轻松解决警告吗?Xcode 7需要额外的元数据,你必须提供它。如果你认为这是一个错误,你是否向苹果公司提交了错误报告? - Léo Natan
6
在“我的应用程序昨天构建和运行得很好,但今天Xcode会发出警告”的情况下,解决方法是有效的。显然,苹果希望每个开发人员更新每个应用程序以运行启用了所有功能的最新版本。然而,在“现实世界中”,有时我们只需要推送修复错误或下一个版本,稍后再处理不断变化的苹果环境。解决方法是有效的。同样,添加xibs/storyboards来支持方向的概念也是有效的。耶! - Olie
4
苹果为了一个“半成品的解决方案”在“通用设置”下添加了一个复选框。 - Rivera
你的回答缺乏其他答案所具有的解释,因此被踩了。 - Lucas van Dongen
显示剩余4条评论

15

11

我刚看到这个错误,阅读了评论后,确实希望支持iPad和多窗口使用。这很简单,只需要检查设备方向选项中的“横向左”和“横向右”,并确保我的UI支持这些选项。

我发现测试良好的多窗口支持的最好方法是使用可调整大小的模拟器,或者更好的方法是在XCode 7.1中使用iPad Pro并通过从右侧拖动来实际启用多窗口功能。 经过这些步骤,我的应用程序支持这些功能,并且我能够快速看到我需要更新或优化以完全支持它们的内容。


我发现测试多窗口支持的最佳方法是使用可调整大小的模拟器,或者更好的方法是在XCode 7.1中使用iPad Pro,并通过从右侧拖动来实际激活多窗口功能。 - d2burke
好的,我漏掉了谈话风格,我道歉。但是您可能需要重新写一下它——我第一次就错过了它,而且我是母语人士。 - Abizern
我明白了 :) 谢谢你的回复。我现在会更新它。 - d2burke
2
这是这个问题的实际答案。谢谢! - Aviel Gross
我的“倒置”选项没有被勾选。启用它可以消除警告。我认为这是正确的答案。 - neelabh

8

默认情况下,设备方向仅启用纵向、左横向和右横向。您需要同时启用倒置方向。

输入图像描述


3

“清空构建文件夹”并重新构建

今天在 Xcode 7.3.1 中我收到了消息:除非应用程序需要全屏,否则必须支持所有界面方向。看起来是没有原因的,我没有做过相关的更改。

  • 一个LaunchScreen.storyboard
  • 没有选择需要全屏

当Xcode让我感到困惑时,我尝试了平常的操作:

  1. 按住Option键点击Product菜单
  2. 选择清空构建文件夹(不是Clean
  3. 选择Product>编译

问题解决了。经过几次构建和运行后,错误消息再也没有出现过。


0

我使用启动图像而不是启动故事板。我认为启动故事板是可选的。我猜在Xcode 7中强烈建议使用启动故事板而不是启动图像,这就是为什么会出现警告的原因吧?目前版本的应用已经被Apple批准,我想下一个版本将包括一个启动故事板,到那时Xcode 7已经发布给公众了。谢谢。 - bachma0507
我也遇到了同样的问题,所以只是确认一下@cbiggin - 你需要有一个启动故事板来解决这个错误吗? - amitsbajaj
无法确认,只是我理论上认为可能会导致问题的原因。尝试添加一个启动故事板,看看问题是否消失。如果问题消失了,请点赞我的答案 :) - cbiggin
1
请注意,您只能在iOS >= 8上使用启动故事板。 - troppoli

0
在 Info.plist 中将 UIRequiresFullScreen 设置为 YES。并勾选需要全屏enter image description here

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