it-swarm.com.de

iOS 9: Warnung "Alle Schnittstellenausrichtungen müssen unterstützt werden, es sei denn, die App erfordert Vollbild" für die Universal-App

Ich arbeite an einer universellen App mit allen Orientierungen auf dem iPad und nur Porträt auf dem iPhone. Die App funktioniert gut mit Split-Screen-Multitasking auf iOS 9-kompatiblem iPad. Ich habe jedoch folgende Warnung:

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

Und meine App benötigt kein Vollbild. Es ist nur auf das Portrait auf dem iPhone beschränkt ... Sollte es nicht in Ordnung sein? Gibt es eine Möglichkeit zu erklären, Vollbild erforderlich nur auf dem iPhone?

Danke im Voraus

Übrigens verwende ich Xcode 7.3.1

42
Zaphod

Die Lösung hierfür ist die Verwendung von "gerätespezifischen Schlüsseln": https://developer.Apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//Apple_ref/ doc/uid/TP40009254-SW9

Ihre plist-Werte würden daher ungefähr so ​​aussehen:

<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/>

Wenn ich die iPad-spezifische Version der UIRequiresFullScreen-Taste entferne, verliere ich die volle Funktion des geteilten Bildschirms. Es ist nur "Slide over" verfügbar, da dies die Verwendung des gesamten Gerätebildschirms auf meiner App nicht beeinträchtigt.

Die Kontrollkästchen "Geräteorientierung" beziehen sich auf die Standardwerte für plist. Die einzige Möglichkeit, die App auf dem iPad nicht zu beeinflussen, besteht darin, dass die Plist einen spezifischeren Wert enthält, also einen Wert, der speziell für das iPad gilt.

Wenn das System in der Info.plist-Datei Ihrer App nach einem Schlüssel sucht, wählt es den Schlüssel, der für das aktuelle Gerät und die Plattform am spezifischsten ist.

35
siburb

Setzen Sie UIRequiresFullScreen auf YES in Info.plist.

 enter image description here

Genießen...!!!

54
mital solanki

Eigentlich war es zu einfach ... Deshalb habe ich es noch nicht einmal ausprobiert:

 Configuration

Die Einstellung von Portrait für Geräteausrichtung wirkt sich nicht auf die iPad-Ausrichtung aus. 

Das bedeutet, dass der Bereich Device Orientation in iPhone Orientation umbenannt werden sollte. In dieser Konfiguration unterstützt das iPhone nur Portrait und das iPad unterstützt alle diese Optionen. Der Split-Screen ist weiterhin erlaubt, da wir Requires full screen nicht geprüft haben.

PS: Zumindest auf Xcode 8.3.1 habe ich es nicht auf Xcode 7.x getestet

8
Zaphod

Für Ihren Fall können Sie Folgendes verwenden: UISupportedInterfaceOrientations ~ iphone.

Ändern Sie den Abschnitt "UISupportedInterfaceOrientations" in Info.plist in:

<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>

Diese Kombination erzeugt keine Warnungen.

0
tier777