iOS 9:通用应用程序警告 "All interface orientations must be supported unless the app requires full screen"

iOS 9 : Warning "All interface orientations must be supported unless the app requires full screen" for universal app

我正在开发一款通用应用程序,所有方向 在 iPad 上 仅纵向 在 iPhone.该应用程序在 iOS 9 兼容 iPad 上与分屏多任务处理配合得很好,但我有这个警告:

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

而且我的应用不需要全屏。仅限于 iPhone 上的肖像……应该没问题吧?有没有办法只在 iPhone 上声明 需要全屏

提前致谢

顺便说一下,我正在使用 Xcode 7.3.1

Info.plist.[=11=中将UIRequiresFullScreen设置为YES ]

享受...!!!

事实上,这太容易了...这就是我什至没有尝试过的原因:

设备方向设置Portrait不会影响iPad方向。

这意味着 Device Orientation 部分应该重命名为 iPhone Orientation,事实上,使用该配置,iPhone 只支持 Portrait 而 iPad 支持全部。而且分屏还是允许的,因为我们没有勾选Requires full screen.

PS:至少在Xcode8.3.1上,我没在Xcode7.x

上测试过

解决方法是使用"Device Specific Keys": https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9

您的 plist 值因此看起来像:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
</array>
<key>UISupportedInterfaceOrientations~ipad</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UIRequiresFullScreen</key>
<true/>
<key>UIRequiresFullScreen~ipad</key>
<false/>

当我删除 iPad 特定版本的 UIRequiresFullScreen 键时,我失去了完整的分屏功能 - 只有 "slide over" 可用,因为这不会影响我的应用程序使用完整的设备屏幕。

"Device Orientation" 复选框用于默认 plist 值。它们不会影响 iPad 上的应用程序的唯一方法是 plist 中是否有更具体的值,因此是专门针对 iPad.

的值

When the system searches for a key in your app’s Info.plist file, it chooses the key that is most specific to the current device and platform.

对于您的情况,您可以使用:UISupportedInterfaceOrientations~iphone.

将 Info.plist 中的 UISupportedInterfaceOrientations 部分更改为:

<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
    <string>UIInterfaceOrientationPortraitUpsideDown</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
    <string>UIInterfaceOrientationLandscapeRight</string>
</array>
<key>UISupportedInterfaceOrientations~iphone</key>
<array>
    <string>UIInterfaceOrientationPortrait</string>
</array>

此组合不会产生警告。

从“首选项”转到“位置”选项卡,找到项目的派生数据文件夹,然后删除与项目相关的文件。