1. ホーム
  2. ios

[解決済み] iOS 9 : ユニバーサルアプリの警告「アプリがフルスクリーンを必要としない限り、すべてのインターフェイスの向きをサポートする必要があります」。

2022-02-12 08:09:17

質問事項

ユニバーサルアプリで すべての方向 をiPadで、そして ポートレートのみ をiPhoneで表示します。iOS9対応のiPadでは画面分割マルチタスクで問題なく動作していますが、こんな警告が出ています。

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

また、私のアプリはフルスクリーンを必要としません。iPhoneのポートレートに限定していますが...。大丈夫ではないでしょうか?と宣言する方法はないでしょうか? フルスクリーンを必要とする はiPhoneのみですか?

ありがとうございました。

ちなみに、Xcode 7.3.1を使用しています。

解決方法は?

この問題を解決するには、"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 スライドオーバーは、デバイスの全画面を使用する私のアプリには影響しないため、利用可能です。

デバイスの向き」のチェックボックスは、plistのデフォルトの値に対するものです。iPad上のアプリに影響を与えない唯一の方法は、plistにもっと具体的な値がある場合、つまりiPad専用の値がある場合です。

<ブロッククオート

システムは、アプリの Info.plist ファイルでキーを検索するとき、現在のデバイスとプラットフォームに最も特化したキーを選択します。