50 votes

iOS 9: Avertissement "Toutes les orientations d'interface doivent être prises en charge, sauf si l'application requiert le plein écran" pour une application universelle

Je travaille sur une application universelle avec toutes les orientations sur iPad et uniquement un portrait sur iPhone. L'application fonctionne bien avec le multitâche sur écran partagé sur un iPad compatible iOS 9, mais j'ai l'avertissement suivant:

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

Et mon application ne nécessite pas le plein écran. C'est limité au portrait sur iPhone ... Ça ne devrait pas être ok? Existe-t-il un moyen de déclarer Nécessite le plein écran uniquement sur iPhone?

Merci d'avance

En passant, j'utilise Xcode 7.3.1

64voto

mital solanki Points 1805

Définissez UIRequiresFullScreen sur YES dans Info.plist .

entrez la description de l'image ici

Prendre plaisir...!!!

45voto

siburb Points 867

La solution pour cela est d'utiliser "l'Appareil Touches Spécifiques": https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html#//apple_ref/doc/uid/TP40009254-SW9

Votre plist valeurs serait donc ressembler à quelque chose comme:

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

Quand j'enlève le iPad version spécifique de l' UIRequiresFullScreen clé, je perds le plein écran partagé fonctionnalité uniquement "slide" est disponible car cela n'affecte pas mon application utiliser le plein écran de l'appareil.

Le Dispositif "Orientation" cases à cocher par défaut plist valeurs. La seule façon qu'ils ne seraient pas affecter l'application sur l'iPad, c'est si il y a une valeur plus spécifique dans le plist, donc une valeur spécifiquement pour l'iPad.

Lorsque le système de recherche d'une clé dans votre application Info.fichier plist, il choisit la clé qui est plus spécifique à l'appareil actuel et plate-forme.

8voto

Zaphod Points 1451

En fait, c'était trop facile... C'est pourquoi je n'ai pas encore essayé:

Configuration

Paramètre Portrait pour l' Orientation du Périphérique n'a pas d'impact iPad orientation.

Cela signifie que le Dispositif d'Orientation de l'article devrait être renommé iPhone Orientation, en effet, avec cette configuration, l'iPhone ne supporte Portrait et l'iPad prend en charge tous les d'entre eux. Et le split-screen est toujours autorisés, comme nous n'avons pas vérifié Requires full screen.

PS: Au moins sur Xcode 8.3.1, je ne l'ai pas testé sur Xcode 7.x

0voto

tier777 Points 11

Pour votre cas, vous pouvez utiliser: UISupportedInterfaceOrientations ~ iphone.

Remplacez la section UISupportedInterfaceOrientations dans Info.plist par:

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

Cette combinaison ne produit aucun avertissement.

-4voto

OrdoDei Points 216

Accédez à l'onglet Emplacements dans Préférences, localisez le dossier de données dérivé du projet et supprimez les fichiers associés au projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X