web-dev-qa-db-ja.com

iOS 9:ユニバーサルアプリの場合、「アプリが全画面表示を必要としない限り、すべてのインターフェイスの向きをサポートする必要がある」という警告

私はiPadですべての向き、iPhoneでポートレートのみを使用してユニバーサルアプリに取り組んでいます。このアプリは、iOS 9互換iPadの分割画面マルチタスクでうまく機能しますが、この警告が表示されます。

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

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

前もって感謝します

ちなみに私はXcode 7.3.1を使用しています

44
Zaphod

これに対する解決策は、「デバイス固有のキー」を使用することです。 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ファイルでキーを検索するときに、現在のデバイスとプラットフォームに最も固有のキーを選択します。

38
siburb

UIRequiresFullScreen[〜#〜] yes [〜#〜]に設定しますinInfo.plist.

enter image description here

楽しい...!!!

60
mital solanki

実際、それはあまりにも簡単でした...それが私がそれを試してさえいなかった理由です:

Configuration

デバイスの向きPortraitを設定しても、iPadの向きには影響しません。

つまり、Device Orientationセクションの名前を変更する必要がありますiPhone Orientation 、その構成では、iPhoneはPortraitのみをサポートし、iPadはそれらすべてをサポートします。分割画面はまだ許可されていません。Requires full screen

PS:少なくともXcode 8.3.1では、Xcode 7.xではテストしていません。

8
Zaphod

あなたのケースでは、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>

この組み合わせでは警告は生成されません。

0
tier777