Comment activer la résolution native pour les applications sur iPhone 6 et 6 Plus?

194

Xcode 6 GM comprend désormais des simulateurs pour iPhone 6 et 6 Plus, et par défaut, ils exécutent des applications en mode évolué.

Pour activer la nouvelle taille d'écran, j'ai essayé d'ajouter [email protected]ce qui semble faire une partie de l'astuce car l'application ne fonctionne plus du tout, avec l'erreur "Impossible d'exécuter l'application dans le simulateur - Une erreur s'est produite lors de l'exécution (Domain = LaunchServicesError, Code = 0) ".

Quelqu'un a-t-il compris comment faire fonctionner une application dans la résolution 6/6 +?

villapossu
la source
16
Comme d'autres l'ont dit, l'astuce consiste à ajouter une image de lancement de la bonne taille à votre projet. J'ai rédigé un guide rapide sur la façon d'ajouter une image de lancement afin que vous puissiez afficher la résolution de l'iPhone 6 ici.
matthewpalmer
1
cela a fonctionné pour moi stackoverflow.com/questions/25755443/…
johndpope
2
La dénomination des images est différente pour l'iphone 6/6 +. Pour moi, l'ajout de l'image de lancement pour 6 et 6+ a parfaitement fonctionné. Regardez cette réponse pour la convention de dénomination correcte: stackoverflow.com/a/27473877/1568532
fellowworldcitizen
Existe-t-il une alternative au lieu d'utiliser LaunchScreen?
Vaibhav Jhaveri

Réponses:

220

Vous pouvez ajouter un fichier d'écran de lancement qui semble fonctionner pour plusieurs tailles d'écran. Je viens d'ajouter le MainStoryboard en tant que fichier d'écran de lancement et cela a empêché l'application de se mettre à l'échelle. Je pense que je devrai ajouter un écran de lancement permanent plus tard, mais cela a permis à la résolution native de fonctionner rapidement. Dans Xcode, accédez à votre cible, général et ajoutez-y le fichier d'écran de lancement.

Lancer le fichier d'écran

David L
la source
2
C'est probablement la meilleure solution si vous utilisez un seul storyboard qui gère tous les appareils. Ma réponse est appropriée si vous n'utilisez pas un seul storyboard ou si vous avez besoin d'images de lancement explicites distinctes.
rmaddy
Je dois définir des images de lancement explicites pour iPhone 6 et 6 Plus. Existe-t-il une convention de dénomination si je ne souhaite pas utiliser le catalogue d'actifs?
Radif Sharafullin
@Radif Sharafullin Voici quelques instructions pour nommer les images de lancement: developer.apple.com/library/prerelease/ios/documentation/iPhone/… . Faites défiler jusqu'en bas pour lancer le modèle de dénomination de l'image.
David L
6
Gardez à l'esprit qu'une fois que vous aurez migré vers LaunchImage, iOS n'allongera plus votre application iPhone-5 vers iPhone-6 (et 6+). Ce qui peut casser l'interface utilisateur de votre application si vous créez vos vues avec une taille absolue comme 320px de largeur et sans utiliser la taille relative à l'aide des mises en page automatiques.
atulkhatri
1
@ design bobo2000 en réponse.
mattsven
116

Si vous utilisez des catalogues d'actifs, accédez au catalogue d'actifs LaunchImages et ajoutez les nouvelles images de lancement pour les deux nouveaux iPhones. Vous devrez peut-être faire un clic droit et choisir "Ajouter une nouvelle image de lancement" pour voir un endroit pour ajouter les nouvelles images.

L'iPhone 6 (Retina HD 4.7) nécessite une image de lancement portrait de 750 x 1334.

L'iPhone 6 Plus (Retina HD 5.5) nécessite des images portrait et paysage de 1242 x 2208 et 2208 x 1242 respectivement.

rmaddy
la source
2
J'aimerais pouvoir choisir deux bonnes réponses car tout cela semble très correct. Je n'ai pas encore commencé à utiliser les catalogues d'actifs (eh bien, j'ai juste essayé d'en adopter un en vain - l'appli n'y a pas trouvé les images de lancement), mais attribuer le fichier d'écran de lancement était une solution facile ici.
villapossu
Il devrait être possible d'ajouter les bonnes images de lancement sans utiliser de catalogues d'actifs. Mais je ne sais pas comment les référencer dans Info.plist.
rmaddy
Dois-je réellement ajouter une image? Je les ai activées et elles évoluent toujours.
Epic Byte
Oui, vous devez réellement ajouter les images (ou utiliser le nouveau "Launch Screen File" (mais ce n'est que pour iOS 8).
rmaddy
1
@trumpetlicks Le plus est rendu à une cible plus grande, puis réduit le rendu à la taille réelle de l'écran, même technique que le MacBook Pro de la rétine. De plus, le Plus peut réellement lancer des applications en mode paysage, aucun autre iPhone ne le peut
hokiewalrus
104

J'ai créé des écrans de lancement noirs de base qui feront évoluer l'application correctement sur l'iPhone 6 et l'iPhone 6+:

iPhone 6 Portrait

iPhone 6 Plus Portrait

Si vous avez déjà une LaunchImage dans votre .xcassett, ouvrez-la, passez au troisième onglet dans le menu de droite dans Xcode et cochez les images iPhone iOS 8.0 pour les ajouter à l'ensemble existant. Faites ensuite glisser les images sur:

entrez la description de l'image ici

A.Badger
la source
52

Je ne voulais pas introduire de catalogue d'actifs.

Selon la réponse de seahorseseaeo ici , l'ajout de ce qui suit à info.plist a fonctionné pour moi. (Je l'ai édité en tant que "code source".) J'ai ensuite nommé les images [email protected] et [email protected]

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
</array>
William Jockusch
la source
Cette réponse est excellente. Il permet d'utiliser facilement les images pour passer de l'écran de démarrage à l'application. Aucune autre solution (catalogue d'actifs ou story-board) ne permet de le faire aussi facilement.
jjxtra
7
Cela a fonctionné pour moi (merci!) Mais il a cessé de reconnaître l'image de lancement 568h @ 2x, désactivant la prise en charge de la taille de l'iphone 5. J'ai juste dû ajouter un autre élément similaire aux deux ci-dessus mais en spécifiant 568h. (champs spécifiques: Default-568h, {320, 568})
Steph Thirion
Il en va de même pour l'iPhone 4S.
Josh Bernfeld
1
vient de faire l'expérience (sur le simulateur) que les fichiers d'image spécifiés n'ont même pas besoin d'exister.
glasz
J'ai un problème avec cette technique sur l'iPhone 6: elle affiche d'abord l'écran de démarrage [email protected] puis affiche brièvement Default-Portrait@2x~iphone.png. Une idée?
Samuel
21

Notez que l'iPhone 6 utilisera la résolution de 320 pts (640 pixels) si vous avez activé le «Zoom d'affichage» dans iPhone> Paramètres> Affichage et luminosité> Afficher.

tomi44g
la source
Je souhaite que cela soit mieux documenté!
bobo2000
Vous venez de me sauver la journée. J'ai essayé toutes les autres solutions mais mon problème était seulement que l'appareil était en mode Zoom.
MessuKilkain
8

Faites ce qui suit (voir sur la photo)

  1. Accéder au catalogue d'actifs
  2. faites un clic droit et choisissez "Ajouter une nouvelle image de lancement"

    • iPhone 6 -> 750 x 1334
    • iPhone 6 Plus -> 1242 x 2208 et 2208 x 1242

entrez la description de l'image ici

Umar Farooq
la source
3

Une erreur s'est produite lors de l'exécution (Domain = LaunchServicesError, Code = 0)

Habituellement, cela indique que installd a renvoyé une erreur pendant le processus d'installation (mauvaises ressources ou similaire).

Malheureusement, Xcode n'affiche pas l'erreur sous-jacente réelle (n'hésitez pas à déposer des dupes de ce bogue connu).

Vous devriez vérifier ~ / Library / Logs / CoreSimulator / CoreSimulator.log qui enregistrera l'erreur sous-jacente pour vous.

Jeremy Huddleston Sequoia
la source
Merci! N'était pas au courant de cet aperçu supplémentaire de la cause première de l'erreur. Le journal détaillé ne me dit pas grand-chose mais au moins j'ai quelque chose à joindre à mon dossier radar.
villapossu
0

Si vous utilisez un catalogue d'actifs et que plusieurs cibles utilisent toutes deux le même fichier de catalogue d'actifs, assurez-vous que ce fichier a vérifié les deux cibles dans le panneau de droite dans xcode.

C'était mon problème.

entrez la description de l'image ici

luky
la source