15
votes

L'écran de lancement ne fonctionne pas sur iOS 14 avec Xcode 12

Je suis très frustré maintenant. J'ai mis à niveau Xcode vers la version 12 et testé mon application sur iOS 14. Maintenant, le problème est que mon écran de lancement s'affiche simplement en noir. Je l'ai testé avec un appareil iOS 13.5 et il fonctionne toujours comme prévu. J'ai essayé de supprimer l'approche launchscreen.storyboard et j'ai ajouté la clé de l'écran de lancement dans info.plist, mais l'image est ensuite redimensionnée à sa taille réelle.

Maintenant, j'ai testé un peu avec le launchscreen.storyboard et j'ai trouvé quelques choses.

  • Si je supprime la vue Image, l'écran de lancement s'affiche comme prévu. J'ai ajouté juste une étiquette et cela fonctionnerait.
  • Si j'utilise une image du système dans la vue image, cela fonctionne également. Cela ne fonctionne tout simplement pas lorsque j'utilise une image du projet.

Avez-vous rencontré des problèmes avec iOS 14 et l'approche storyboard?

Si oui, comment l'avez-vous résolu?


2 commentaires

avait un problème similaire et renommer l'image de LaunchImage.jpg en SplashImage.jpg a résolu le problème, du moins pour le moment


Nous sommes confrontés au même problème. Mais cela arrive aussi à nos versions avec le SDK iOS 13 sur iOS 14.


11 Réponses :


8
votes

Un travail qui semble fonctionner pour moi:

Pour une raison étrange, si je réduis l'image, cela fonctionne bien . J'avais une image en taille réelle de 2732x2732 et cela n'a pas fonctionné. Réduire la dimension de la même image à 2400x2400 fonctionne correctement. J'ai essayé avec 2500x2500 et 2600x2600 mais aucun n'a fonctionné.

Plus important encore, chaque fois que je change l'image, je devais redémarrer le simulateur pour refléter l'image mise à jour.

Cela ne fonctionnait pas encore sur l'appareil réel. Comme le simulateur, j'ai dû redémarrer l'appareil et ensuite seulement cela a fonctionné.

Je ne sais pas si c'est quelque chose avec la dimension / taille de l'image ou avec le redémarrage.

Autres mises à jour:

J'ai téléchargé la même version (avec une image plus petite) sur TestFlight et l'ai installée sur mon appareil (essentiellement mise à jour à partir de la version précédente avec une image de grande taille) et malheureusement le problème a persisté :(

Maintenant, ce que j'ai fait, c'est désinstaller l'application et la réinstaller à partir de TestFlight. Le problème persistait.

Enfin, j'ai dû supprimer l'application , redémarrer mon appareil et réinstaller l'application . C'est à ce moment-là que ça a bien fonctionné.


4 commentaires

Veuillez vous assurer que le «Mode contenu» d'UIImageView est correctement défini. Je l'ai réglé sur 'Aspect Fil' dans mon cas


Merci! Supprimez l'application, redémarrez l'appareil et réinstallez l'application! cela a fonctionné pour moi aussi


Merci pour moi, cela a à voir avec une image trop grande. Je l'ai changé en petite taille et cela a fonctionné!


J'ai trouvé que réduire les dimensions à 2400 n'était pas suffisant. Réduire la taille du fichier sous 1 Mo m'a aidé.



3
votes

La seule solution de contournement qui fonctionne pour moi était d'ajouter les images en dehors Images.xcassets dossier Images.xcassets . Après avoir modifié cela et reconstruit l'application, cela a fonctionné comme prévu.

Un problème se produit sur iOS 14 ou XCode 12.


0 commentaires

0
votes

J'ai un problème similaire avec XCode12 / iOS14 et le projet React: le launchscreen.storyboard fonctionnait bien dans les versions précédentes. Depuis la mise à jour vers XCode12, il apparaît comme suit:

  • Lancement sur un écran noir (2-3 secondes)
  • Puis afficher correctement l'écran de lancement

Si j'essaie d'utiliser le nouveau dictionnaire «Écran de lancement» dans Info.plist, j'ai les problèmes suivants (même chose dans une autre application Xamarin):

  • L'image est agrandie / ne s'affiche pas complètement
  • Le réglage de la couleur d'arrière-plan est complètement ignoré (essayé RVB et Color.xcasset)

C'est juste complètement buggé depuis Xcode 12!


1 commentaires

Oui, c'est le même comportement auquel je faisais face



2
votes

Avait le même problème. Le problème était l'image .png utilisée dans le storyboard de l'écran de lancement. Cela a conduit à ce que tout l'écran de lancement soit noir.

Ce qui l'a corrigé dans notre cas était:

  • Choisissez une image plus petite
  • Supprimer l'application de l'appareil / simulateur
  • Redémarrer l'appareil / simulateur

J'ai trouvé que l'image était la source d'erreur en remplaçant l'image par une autre dans notre application. Cela a immédiatement fonctionné avec une image différente (aucun redémarrage ou autre requis).


0 commentaires

0
votes

J'avais ça aussi. Assez exaspérant. Mon écran de lancement est simplement une image d'arrière-plan (2048x2048 PNG) et un graphique (2048x2048 PNG) au milieu.

Le correctif pour moi était d'avoir un graphique central plus petit (720x720 PNG), de supprimer les images de tous les catalogues d'actifs et de les ajouter au projet.

Les images ne s'affichaient pas sur le simulateur jusqu'à ce que je l'ai redémarré. Une fois construit et installé sur mon iPhone, je n'ai pas eu à le redémarrer.


0 commentaires

-1
votes

Essayez ma solution, cela fonctionne très bien pour moi.

  1. Allez dans Xcode -> Préférences -> Emplacements.

  2. Appuyez sur la petite flèche, regardez l'image ci-dessous pour ouvrir le répertoire Xcode dans le Finder: entrez la description de l'image ici

  3. Quitter Xcode

  4. Ouvrez le dossier «iOS DeviceSupport» dans le dossier du répertoire Xcode que vous avez ouvert précédemment:

entrez la description de l'image ici

  1. Renommez le dossier «iOS DeviceSupport» comme vous le souhaitez (old_iOS DeviceSupport)
  2. Redémarrez Xcode.
  3. Xcode crée pour vous un nouveau dossier «iOS DeviceSupport»
  4. Connectez votre appareil
  5. Projet construit et c'est parti!

Je l'exécute sur:

entrez la description de l'image ici


1 commentaires

N'a rien fait même si la suppression des caches est une bonne piste



3
votes

Voici donc beaucoup de bonnes idées, mais j'ai finalement réussi à résoudre le problème - cela ressemble plus à une solution de contournement. J'avais besoin de stocker l'image en dehors du dossier Images.xcassets, puis cela a recommencé à fonctionner. C'est un problème très étrange.


1 commentaires

Cela a fonctionné pour moi. Cette solution a cependant l'inconvénient qu'il n'est plus possible de définir une image différente pour le mode sombre et clair (le logo de mon application a deux tons de couleur légèrement différents pour le fond clair et foncé).



0
votes

J'ai donc eu ce bug avec Apple via leur système de feedback depuis le 26 juin 2020 - FB7795777.

J'ai fourni mon projet et de nombreux rapports de diagnostic et ils ne sont jamais revenus avec un correctif.

Cependant, aujourd'hui, je l'ai réparé.

Fondamentalement, il y a eu quelques changements dans le SDK iOS / iPadOS sur la façon dont il prend en charge les fichiers .PNG et .JPG (la taille ou les dimensions sont les problèmes que je pense) dans le processus de l'écran de lancement.

La solution:

Ouvrez votre fichier .PNG dans Photoshop et réexportez-le avec l'option «Petit fichier - 8 bits» cochée. Il l'a réduit à moins de la moitié de sa taille et cela a fonctionné du premier coup.


0 commentaires

1
votes

Dans mon cas, ce qui suit a fait le travail: -

  1. Supprimez le fichier d'écran de lancement de Projet -> Général -> Icônes d'application et Image de lancement -> Fichier d'écran de lancement.

  2. Accédez au fichier info.plist et ouvrez-le en tant que code source.

  3. Ajoutez-y le code suivant et changez le nom de l'image: -

    <key>UILaunchScreen</key> <dict> <key>UIImageName</key> <string>splash(This is your image name)</string> </dict>

  4. Dans iOS 14, cette nouvelle clé a été publiée (UILaunchScreen). Alors faites attention la prochaine fois. Si vous obtenez une erreur, vérifiez le fichier info.plist.

  5. Bon codage :)


1 commentaires

Malheureusement, cela ne fonctionne pas bien. L'image est étirée et il n'y a aucun moyen de spécifier une représentation alternative



1
votes

J'ai rencontré ce problème

lors de l'utilisation de LaunchScreen.storyboard et de l'image sur Assets.xcassets, ne fonctionnant pas sur iOS 14 avec Xcode 12.

Je l'ai résolu en essayant de changer l'image 3x 2436 × 1125 et de définir l'image 2x 828 × 1792.

Enfin, j'ai dû supprimer l'application, redémarrer mon appareil et réinstaller l'application. C'est à ce moment-là que ça a bien fonctionné.


2 commentaires

Quelques conseils car c'est votre premier message. 1) Assurez-vous que votre réponse ressemble à une réponse. Commencer par une phrase comme "J'ai le même problème" ne semble pas être une réponse. Essayez d'être plus sûr de vous, par exemple "J'ai rencontré ce problème quand ... je l'ai résolu par ..." 2) N'ajoutez pas à votre réponse dans les commentaires. modifiez plutôt votre réponse.


@DavidBuck C'est très utile pour moi. Merci beaucoup.



0
votes

Cela peut aider les autres alors je l'ajoute ici.

J'utilise Cordova pour mon application hybride, puis je charge mes actifs d'image générés par Asset Catalog Creator (qui est un excellent petit produit).

Cela fonctionnait parfaitement jusqu'à ce que je mette à jour vers Xcode 12 et que j'essaye de l'exécuter sous iOS 14.

Ce que j'ai découvert, c'est que Cordova ajoutait un "CDVLaunchScreen.storyboard", et qu'ils avaient un "LaunchStoryboard.imageset" (répertoire) dans leur catalogue d'actifs, qui ne contenait qu'un fichier contents.json.

Je l'ai simplement copié dans mon catalogue d'actifs, et lorsque je fais un glisser-déposer dans mon projet mis à jour (nouvellement généré à chaque fois par Cordova), mon image de lancement s'affiche à nouveau.

Ne me demandez pas comment ou pourquoi Xcode connecte par magie ces choses, mais cela a fonctionné pour moi.

Je peux transmettre le contents.json qui a fonctionné avec mon catalogue d'actifs si cela peut aider.

BTW, mon écran de paramètres généraux n'a PAS de fichier d'écran de lancement sélectionné, mais Xcode semble trouver les fichiers requis.


0 commentaires