苹果公司在iOS 9中引入了一个新的规则,即任何通用应用程序必须支持所有可能的设备方向,除非该应用程序使用全屏幕模式。如果你的应用程序不遵守这个规则,在提交到App Store时将会遭到拒绝。
问题描述
这个问题通常出现在一个在 iPhone 和 iPad 上都能运行的通用应用程序中。当你试图在 iPhone 设备上使用横屏模式时,应用程序会崩溃并提示以下错误: "All interface orientations must be supported unless the app requires full screen"。
这个问题是由于 iOS 9 引入了 UISupportedInterfaceOrientations
字段所致。这个字段包含了应用程序所支持的方向列表。如果你没有正确设置这个字段,iOS 9 将默认认为你只支持竖屏模式,如果你在横屏模式下尝试打开应用程序,那么就会出现错误。
解决方法
解决这个问题的方法很简单。你需要在你的应用程序信息属性列表文件(Info.plist)中添加 UISupportedInterfaceOrientations
键,并将其设置为所支持的方向列表。例如,如果你想要支持横屏和竖屏模式,那么你可以将 UISupportedInterfaceOrientations
设置为以下值:
<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array>
如果你只想支持竖屏模式,那么你可以将 UISupportedInterfaceOrientations
设置为以下值:
<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array>
请注意,如果你的应用程序需要全屏幕模式,请在应用程序信息属性列表文件中添加 UIRequiresFullScreen
键,并将其设置为 “YES”。
<key>UIRequiresFullScreen</key> <true/>
学习和指导意义
这个问题提醒我们,在开发 iOS 应用程序时,我们应该始终遵守苹果公司的规则和要求。这不仅包括支持所有可能的设备方向,还包括其他规则,比如使用正确的图标和启动画面等。
另外,当出现错误时,我们应该仔细阅读错误消息并理解其中的含义。这样可以帮助我们快速诊断问题并找到解决方法。
最后,我们需要时刻关注苹果公司的更新和变化。iOS 平台的发展非常迅速,每一个新版本都会带来一些新的变化。我们需要及时学习并适应这些变化,以便在 App Store 上发布高质量的应用程序。
示例代码
以下是一个支持横屏和竖屏模式的示例代码:
<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> <string>UIInterfaceOrientationLandscapeLeft</string> <string>UIInterfaceOrientationLandscapeRight</string> </array>
以下是一个仅支持竖屏模式的示例代码:
<key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationPortrait</string> </array>
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/606ef6ee2d2a29a3c12029ea