34 votes

Icônes de l'application non incluses dans la construction à partir de Xcode

Je ne vois pas l'icône d'application iOS lorsque j'installe la version de la dernière version de Xcode Beta. Quelle pourrait être l'erreur possible ?

J'ai inclus les tailles d'icônes requises, y compris 1024x1024.

0 votes

Jetez un coup d'œil ici : stackoverflow.com/a/48209761/391605 Il semble qu'Apple ait discrètement (et fâcheusement) ajouté des exigences supplémentaires en matière d'icônes pour les iPads.

0 votes

Assurez-vous que chaque dossier de ressources d'image contient un fichier "Contents.json" qui répertorie toutes les ressources et le type de périphérique auquel elles sont associées.

30voto

Duncan Babbage Points 3732

Vous n'êtes pas seul.

Dans mon projet, j'ai constaté qu'une ressource AppIcon précédente qui fonctionnait bien ne permettait plus d'obtenir une icône d'application. Une série d'expérimentations a permis de trouver ce qui suit :

  • Une ressource AppIcon copiée à partir d'un autre projet où l'AppIcon fonctionnait, a permis à l'AppIcon de fonctionner dans ce projet, suggérant qu'il y avait un problème avec la ressource AppIcon originale spécifique qui ne fonctionnait pas.
  • En copiant les fichiers image de l'actif AppIcon non fonctionnel vers l'actif fonctionnel, l'actif fonctionnel échoue également.
  • La création d'une nouvelle ressource AppIcon et l'insertion des images originales de l'icône d'application ont également donné lieu à une icône d'application vide.

Combinés ensemble, les points jusqu'à ce stade suggéraient qu'il y avait peut-être un problème avec les fichiers d'image eux-mêmes. J'ai donc essayé différentes étapes pour résoudre ce problème :

  • Ré-exportation de toutes les tailles d'icônes avec mon application de prétraitement habituelle, Prepo. Je me suis assuré que mon image source ne contenait pas de transparence. En insérant ces images d'icônes recréées, j'obtiens toujours une icône d'application vide.
  • En recréant toutes les tailles d'icônes avec un processus différent, via Sketch, et en insérant ces images d'icônes dans la même ressource AppIcon, l'icône de l'application fonctionne.
  • En créant une nouvelle ressource AppIcon et en insérant les images créées par Sketch, l'icône de l'application a continué à fonctionner.

Tout ce qui précède suggère qu'il y a quelque chose dans Xcode 9 qui rejette ou ne parvient pas à utiliser les images d'icônes d'applications qui fonctionnaient auparavant, et que certains processus de création d'icônes d'applications qui fonctionnaient bien auparavant produisent des images que Xcode 9 ne peut pas utiliser. Peut-être y a-t-il quelque chose dans la spécification png qui est un png valide, mais pas une icône d'application acceptable pour Xcode 9. La pensée la plus évidente est que les icônes d'application avec de la transparence pourraient être rejetées, mais je ne crois pas que les images d'icône que j'utilisais contenaient de la transparence et j'ai essayé d'éliminer cela dans mes tests ci-dessus.


Une cause complètement distincte qui a été signalée pour certains utilisateurs est liée à l'intégration de CocoaPods. Voir la discussion avec une solution temporaire possible aquí et un demande de pull qui a été créée pour Cocoapods qui résout théoriquement ce problème. Je dis théoriquement, car j'ai essayé de mettre en œuvre ces deux solutions, et aucune d'entre elles n'a résolu le problème sur le projet où je l'ai rencontré.

0 votes

Cela n'a absolument aucun sens pour moi, l'un de mes projets fonctionne et l'autre non.

0 votes

J'ai également essayé de supprimer le canal alpha de mes icônes et cela n'a toujours pas fonctionné. Je suis tout à fait d'accord pour dire que c'est quelque chose dans certains PNG qu'ils rejettent maintenant.

1 votes

La suppression de la clé "CFBundleIcons~ipad" du fichier .plist a fonctionné pour ma version, mais pas pour les autres. Consultez la solution complète ici : stackoverflow.com/a/47597386/6346864

22voto

Damo Points 5382

Pour plus de clarté, assurez-vous que le profil de couleur est réglé sur : sRGB IEC61966-2.1 . Mes icônes n'avaient pas de profil de couleur avant que je ne tombe sur ce problème.

Je suis sûr que d'autres profils de couleurs doivent fonctionner mais je n'ai pas fait les tests pour en être sûr.

Cela peut être fait en avant-première par :

  1. Outils Attribuer un profil

Assign Profile1

  1. Sélectionnez sRGB IEC61966-2.1

Assign Profile2

Lorsque vous obtenez des informations sur les icônes, le profil de couleur correct doit être indiqué.

Example of working / non working Get Info on two images

1 votes

Malheureusement, cela ne fonctionne pas pour tout le monde, mais merci quand même, tu m'as donné de l'espoir.

2 votes

J'ai dû supprimer le canal Alpha pour que cela fonctionne. (Pour ce faire, ouvrez l'icône dans Aperçu, exportez, décochez le canal Alpha et enregistrez en PNG).

0 votes

Génial ! Après plusieurs jours d'essais, cette solution fonctionne pour moi.

17voto

Nikunj Joshi Points 376

Après avoir essayé diverses solutions comme "Attribution du profil de couleur (sRGB IEC61966-2.1) aux icônes" y "La solution CocoaPods" indiqué ci-dessus, ou "Changer le nom de la source de l'icône de l'application pour un nom d'actif différent dans le réglage du proect". , J'ai trouvé une solution très simple comme suit :

  1. Effacez votre projet.
  2. Des données claires et dérivées à ( ~/Bibliothèque/Developer/Xcode/DerivedData/ )
  3. Aller à "Projet -> Phase de construction"
  4. Trouvez "Copier les ressources globales et les faire glisser comme le dernier élément de la liste". .
  5. Désinstallez l'application si elle est déjà là, et exécutez le projet.

Trouvez la capture d'écran pour une meilleure compréhension.

Avant

enter image description here

Après

enter image description here

Note : Vous pouvez vérifier ce qui crée un problème pour l'icône d'application dans votre projet en changeant simplement la position de "Copy Bundle Resources" vers le haut.

2 votes

J'ai trouvé un correctif similaire : la liste des ressources du Bundle Copy n'incluait pas le fichier images.xcassets fichier. L'ajout du fichier à la liste a réglé le problème. Je n'ai pas eu besoin de repositionner la liste des ressources du dossier de copie elle-même.

13voto

grwilde Points 176

J'ai eu le même problème avec mes icônes d'application. Elles s'affichaient sur certains appareils mais pas sur d'autres. J'ai examiné le problème de plus près et j'ai découvert que toutes mes icônes n'avaient pas été aplaties et qu'elles avaient toutes un espace couleur incorrect (Adobe RGB). J'ai aplati toutes les icônes et les ai converties en espace couleur SRGB, puis j'ai remplacé les icônes existantes. Toutes les icônes s'affichent parfaitement maintenant.

1 votes

J'utilise une application Mac de l'AppStore appelée "Asset Catalog Creator" pour créer des icônes d'application. Elles fonctionnaient jusqu'à Xcode 9. Votre commentaire a été utile, j'ai regardé mes images et le profil de couleur était "Adobe RGB", et j'ai découvert que mon image originale utilisée pour créer les actifs était également "Adobe RGB", il y a un paramètre de préférences dans le "Asset Catalog Creator" qui était coché "[x] Keep original color profile", une fois que j'ai décoché cette case, puis lancé le créateur d'icônes avec l'image originale, les nouvelles images sont créées avec le profil de couleur sRGB et fonctionnent maintenant bien ! Merci.

8voto

John Guy Points 381

Une autre solution simple une fois découverte :

J'ai eu le même problème avec XCode 9.0, un projet qui fonctionnait parfaitement bien sous XCode 8 et iOS 10 perd soudainement ses icônes (uniquement sur les iPads) lorsque j'ai mis à jour la solution.

Je me suis arraché les cheveux, j'ai fait le truc sRGB, j'ai fait le truc de la transparence.

Il s'avère que j'avais toujours l'entrée vide suivante dans mon fichier info.plist des cibles

CFBundleIcons~ipad

Cela fait longtemps que j'ai décidé de le spécifier dans les paramètres de construction de la cible.

La solution consistait simplement à supprimer cette entrée du fichier info.plist (en cliquant sur le petit bouton "-" très utile). J'ai reconstruit et testé et tout était parfait une fois de plus.

0 votes

Pour moi, c'était plutôt le contraire. Je supportais IOS 7 et j'avais besoin d'ajouter l'entrée manquante du nom de fichier au dictionnaire CFBundleIcons~IPad. Lorsque j'ai supprimé la clé, aucune des icônes n'a été trouvée alors qu'elles étaient référencées dans les xcassets.

0 votes

Pour moi, l'entrée AppCategory ne pouvait pas non plus être vide. Peut-être que cela signifie que toutes les entrées doivent être remplies avec une certaine valeur ?

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