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>
此组合不会产生警告。
从“首选项”转到“位置”选项卡,找到项目的派生数据文件夹,然后删除与项目相关的文件。
我正在开发一款通用应用程序,所有方向 在 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>
此组合不会产生警告。
从“首选项”转到“位置”选项卡,找到项目的派生数据文件夹,然后删除与项目相关的文件。