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
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.
Eigentlich war es zu einfach ... Deshalb habe ich es noch nicht einmal ausprobiert:
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
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.