web-dev-qa-db-fra.com

CFBundleIconName manquant dans la version de l'application Xcode9 iOS11

J'ai du mal à publier une nouvelle version de notre application à l'aide de Xcode 9, construit avec iOS 11 SDK. L'archivage et le téléchargement du binaire se font sans problème. La construction apparaît dans iTunes Connect sous Activité en tant que «traitement». Elle disparaît et je reçois le courrier électronique suivant.

Cher développeur,

Nous avons découvert un ou plusieurs problèmes liés à votre livraison récente pour "". Pour traiter votre livraison, les problèmes suivants doivent être corrigé: Valeur Info.plist manquante - Une valeur pour la clé Info.plist CFBundleIconName est manquant dans le bundle ''. Des applications qui fournir des icônes dans le catalogue d’actifs doit également fournir cet Info.plist clé. Pour plus d'informations, voir http://help.Apple.com/xcode/mac/current/#/dev10510b1f7 . Une fois ces problèmes ont été corrigés, vous pouvez alors renvoyer le message corrigé binaire. Cordialement, L'équipe App Store

Le lien donne des informations sur les ensembles d'actifs. J'ai essayé de définir une clé CFBundleIconName sur un nom de projet ou un nom de fichier image et de soumettre l'application à nouveau. Cependant, je reçois toujours le même courriel que ci-dessus. 

Toute suggestion d'aide serait très appréciée.

59
ErAcube

J'ai compris que depuis les versions de Xcode 9 iOS 11, iTunes App App Icon doit être associé au binaire lui-même, ce qui aurait pu être ajouté à iTunes Connect directement dans les versions antérieures de Xcode (XCode 8.3.3 et précédent).

Si vous distribuez votre application via l'App Store, ajoutez l'App Store icône à un catalogue d’actifs situé dans le projet Xcode. L'emplacement de l'icône est différente selon la plate-forme.

Pour les applications iOS et watchOS créées à l'aide de Xcode 8.3.3 et versions antérieures, vous ajoutez l'icône App Store dans iTunes Connect. Pour les applications macOS et tvOS, vous ajoutez l'icône App Store du projet Xcode, mais l'emplacement dans l'actif Le catalogue est différent des applications construites avec Xcode 9 et ultérieur.

L'icône de l'App Store requise doit être placée dans un catalogue d'actifs situé dans l'ensemble d'applications.

 Adding App Store Icon

Donc, CFBundleIconName doit maintenant être défini sur AppIcon (valeur par défaut) ou sur une valeur que vous définissez.

Ajouter uniquement cette image ne passera pas le processus de téléchargement iTunes Archive. Nous devons donc ajouter toutes les images des icônes d'application des tailles suivantes:

  • 20pt 1x, 2x, 3x
  • 29pt 1x, 2x, 3x
  • 40pt 1x, 2x, 3x
  • 60 pt 1x, 2x, 3x
  • 76pt 1x, 2x
  • 85.5pt 2x
  • 1024 pts 1x

Il est donc temps d’utiliser le catalogue d’actifs pour spécifier les icônes des applications. 

30
ErAcube

J'ai lutté avec cela toute la journée et dans la nuit, essayant toutes les permutations auxquelles je pouvais penser et finalement trouvé cette solution - espérons que cela évitera à quelqu'un de passer par ce cauchemar.

Mon application n'utilisait pas auparavant un catalogue xcassets, alors j'en avais ajouté un au projet lorsque j'essayais de résoudre ce problème en utilisant Fichier - Nouveau - Fichier ... et en choisissant un catalogue d'actifs à partir des types de fichiers. Je l'ai nommé Assets.xcassets. et l'a choisi dans le projet xcode. Cliquez ensuite avec le bouton droit de la souris dans la zone de droite et choisissez d'ajouter des icônes d'application et des images de lancement, puis une nouvelle icône d'application iOS, puis de faire glisser mon image 1024x1024 vers le puits pour l'emplacement pour iOS 1024pt de l'App Store qui aurait fonctionné de manière satisfaisante. mais j'ai quand même eu des emails rejetés après avoir archivé et soumis au magasin.

Valeur Info.plist manquante - Une valeur pour la clé Info.plist, CFBundleIconName, est manquante dans l'ensemble. bla bla bla ...

J'avais également ajouté la clé à Info.plist pour "Nom de l'icône", également connu de CFBundleIconName, et l'avais définie avec un nom de fichier de chaîne correspondant à mon image 1024x1024 dans le projet. Mais rien de tout cela n'a fonctionné même si la vérification du contenu de l'IPA a montré que tout était correctement en place.

enfin, j'ai supprimé AppIcon de mon catalogue appelé Assets.xcassets afin de le vider de son contenu et j'ai procédé comme suit pour résoudre le problème:

Accédez au paramètre principal de l'application en cliquant sur le nom de votre application, puis en sélectionnant l'onglet GÉNÉRAL, puis sous la section Icônes d'application et images de lancement, cliquez sur le bouton en regard de la source des icônes d'application et choisissez d'utiliser un catalogue d'éléments. Sélectionnez le nom de votre élément. catalogue - le mien s'appelait Assets.xcassets - et dites convertir (migrer) l'application avec le bouton de cette fenêtre contextuelle - j'ai également coché la case permettant de convertir les images de lancement également - lorsque vous avez terminé, App Icons Source et Launch Images Source avoir des noms dans la liste déroulante.

accédez au catalogue d'actifs en cliquant dessus. Encore une fois, le fichier Assets.xcassets était de nouveau créé, puis cliquez sur la section AppIcon et faites glisser votre image 1024x1024 dans le bien/l'emplacement de l'App Store iOS 1024pt. archivez votre application une dernière fois et envoyez-la à l'App Store - à ce moment-là, j'espère ne plus recevoir de courriels de l'enfer, car j'ai commencé à les appeler au sujet du rejet de votre application et vous pouvez revenir à iTunesConnect pour soumettre votre application.

Bonne chance - Je suis sensible à la douleur que vous ressentez peut-être avec cette erreur essentiellement cryptique lorsque vous avez essayé de nombreuses solutions raisonnables qui n'ont tout simplement pas fonctionné. Telle est la vie d'un ingénieur logiciel parfois ...;)

si c'était facile, tout le monde le ferait, non. ;)

56
Richie Hyatt

La solution la plus simple consiste à ajouter la clé CFBundleIconName dans la liste de sélection et à remplir toutes les tranches AppIcon du catalogue d’actifs.

Info.plist:

<key>CFBundleIconName</key>
<string>AppIcon</string>

 enter image description here

 enter image description here

Téléchargez les actifs des outils de travail ici

35
Guru

Les applications créées avec iOS 11 ou une version ultérieure du SDK doivent fournir des icônes d'application dans un catalogue d'actifs et fournir également une valeur pour cette clé Info.plist.

Pour les projets plus anciens sans catalogue d’actifs, il y aura des problèmes lors de la soumission à Appstore.

Dans Projet -> Propriétés de la cible - Onglet Général—> Icônes d'application et image de lancement . Icônes d'application -> Sélectionnez Utiliser le catalogue d'actifs Ensuite, il vous sera demandé de convertir (migrer) avec une alerte et de créer un fichier .xcassets. Cochez la case pour convertir les images de lancement aussi.
Lorsque vous avez terminé, la source des icônes de l'application et la source de lancement des images ont des noms dans la liste déroulante . Ajoutez-y les icônes de l'application et d'autres icônes.

9
Neha Vipin

Je recevais le même courriel chaque fois que je soumettais un fichier binaire pour une nouvelle version de l'une de mes applications. J'ai essayé tous les remèdes énumérés ici, mais rien n'a fonctionné. Ensuite, j'ai apporté un autre changement qui a fonctionné.

Dans le cible. . . Paramètres de construction. . . Dans la section Compilateur du catalogue de ressources - Options , assurez-vous que le nom du catalogue de ressources contenant les icônes est indiqué dans Nom du jeu d’icônes de l’application de catalogue des ressources . Pour une raison quelconque, mon Nom du jeu d'icônes de l'application Asset Catalog App était vide.

9
GlennRay

Maintenant, dans IOS 11, nous devons ajouter une nouvelle icône dans notre projet de taille 1024x1024.

Assurez-vous que les fichiers d'icônes sont supprimés du dossier de ressources du groupe de code source et que la clé de fichiers d'icônes de info.plist est effacée . Ajoutez également la clé CFBundleIconName à la liste de plist

Info.plist:

<key>CFBundleIconName</key>
<string>AppIcon</string>

De même, dans la section Projet - Cible -> Paramètres de construction -> Compilateur de catalogue d'actifs -, assurez-vous que le nom du catalogue d'actifs contenant les icônes est affiché dans Nom du jeu d'icônes de l'application Asset Catalog. 

8
Neha Vipin

J'ai le même problème et résolu comme suit.

Voici le guide étape par étape.

Étape 1:

Créez une icône avec 1024 * 1024.png

Étape 2:

Téléchargez ce png sur le site Web https://www.appicon.build/ et faites-le glisser à l'écran.

 enter image description here

Étape 3:

Il vous demandera d'entrer votre adresse email. Entrez-le et après quelques secondes, vous obtiendrez toutes les tailles d'image requises dans votre boîte aux lettres. Téléchargez ce dossier compressé et décompressez-le.

Étape 4:

Revenez à votre projet sur Xcode et ajoutez ce dossier non compressé (appelé AppIcon.appconset) au dossier de ressources de votre projet xcode.

 enter image description here

Étape 5:

Double-cliquez sur le dossier Asset.xcassets et faites glisser les images souhaitées dans l'espace réservé aux images 2x et 3x à partir des images générées.

 enter image description here

Tu es prêt!...

7
casillas

Moi aussi j'ai rencontré le "Valeur Info.plist manquante - Une valeur pour la clé Info.plist CFBundleIconName est manquante dans le bundle ..." erreur et je voulais laisser une réponse concise pour aider, espérons-le, la personne suivante.

L'application n'utilisait pas de catalogue d'actifs. Bien que ce ne soit pas ce que dit cette erreur, c’est ce qui est nécessaire pour résoudre ce problème, mais la façon dont vous ajoutez les valeurs est importante. Il ne suffit pas d’ajouter manuellement cette clé\valeur manquante à la liste .plist; il y a plus que cela. Vous devez également supprimer la valeur CFBundleIcons de votre liste .plist. Cela peut être fait manuellement, mais je recommande d'utiliser l'interface XCode pour l'éditer via les propriétés du projet - Icônes d'application générales et Image de lancement. C'est comme ça que j'ai eu le mien au travail.

Vous trouverez ci-dessous une capture d'écran des modifications apportées à mon fichier .plist.

Mise à jour .PList

Icônes d'application et images de lancement

Ajoutez un nouveau catalogue d'actifs à votre projet si vous n'en avez pas déjà un. 
Cliquez sur le nom de l'application en haut de la fenêtre de votre navigateur.
Sélectionnez l'onglet GENERAL 
Faites défiler jusqu'à la section "Icônes d'application et images de lancement" 
Cliquez sur le bouton "Utiliser un catalogue d’actifs". 
REMARQUE: j'avais créé mon propre catalogue d'actifs et mon jeu d'images d'icônes d'application iOS, mais la liaison avec le catalogue existant ne fonctionnait pas pour moi car elle créait un nouveau jeu d'images contenant des valeurs vides\images. Je devais les supprimer tous et laisser ce processus les créer pour moi. Si vous venez d'ajouter un catalogue d'actifs pour résoudre ce problème, laissez ce processus le créer pour vous, n'ajoutez pas manuellement le jeu d'images.

Cliquez pour convertir\migrer l'application 
Après avoir cliqué sur le bouton, rien ne s'est actualisé automatiquement pour moi. J'ai navigué loin puis de nouveau à l'écran des paramètres et les valeurs ont maintenant été assignées dans la liste déroulante.

Ouvrez maintenant votre nouveau catalogue d’actifs en cliquant dessus.
Cliquez sur la section "AppIcon" et faites glisser les images requises vers les emplacements appropriés.

Vous aurez besoin de l’image 1024x1024 pour l’icône App Store iOS 1024pt et pour toute autre icône requise pour l’application iPhone\iPad\Universal. L’image 1024x1024px est également appelée icône marketing. Vous ne pouvez pas soumettre votre application sans elle.

Vous devriez maintenant pouvoir archiver votre application et la soumettre à l'App Store.

4
R. Bauer

Suivez les étapes ci-dessous.

  1. Dans votre projet, ajoutez un nouveau fichier >> Asset Catlog.
  2. Goto Cliquez sur votre projet dans XCODE >> Général >> Icônes d'application. Voir capture d'écran . Ceci créera automatiquement les spécifications AppICon et LaunchImage dans votre actif, après quoi vous pourrez faire glisser votre icône Appstore et les autres icônes qu'elle contient.

  3. Ajoutez aussi
    <key>CFBundleIconName</key>
    <string>AppIcon</string>

Cette entrée dans votre fichier plist.

Téléchargez vos fichiers binaires sur iTunes.

2
Pramod Chaudhari

J'ai enfin trouvé une solution propre à ce problème, qui ne nécessite l'ajout d'aucune clé à info.plist, telle que CFBundleIconName. Je l'ai fait lors de la mise à jour d'une ancienne application dans l'App Store pour le mettre à niveau avec le SDK 11.2 (et croyez-moi, il y avait pas mal de frustration impliquée). J'utilise Xamarin dans Visual Studio sur un PC, mais cette solution devrait fonctionner dans n'importe quel autre IDE ou framework, par exemple. XCode. L'essentiel de la solution est que le fichier info.plist et le dossier Resources n'ont plus besoin de jouer de rôle en ce qui concerne les icônes d'application et les images de lancement. En fait, vous pouvez supprimer la clé CFBundleIconFiles du fichier info.plist et cela ne fera aucune différence pour votre projet.

Voici les étapes à suivre:

  1. Faites une copie des icônes de vos applications, lancez les images et stockez-les dans un emplacement séparé. 
  2. Pour un démarrage en mode minimal, supprimez les références aux icônes d'application et lancez les images depuis info.plist, ce qui signifie la suppression de valeurs sous la clé CFBundleIconFiles. 
  3. Supprimez les icônes d'application et lancez les images à partir du dossier Ressources.
  4. Utilisez l'option de suppression pour supprimer les "actifs" ou les "supports" que vous avez déclarés sous "Catalogues d'actifs".
  5. Un dossier portant le nom Assets.xcassets ou Media.xcassets (ou des dossiers .xcassets portant un nom similaire) peut toujours être présent dans votre projet. Ils seraient soit à l'extérieur ou à l'intérieur du dossier Ressources. Supprimer tous les dossiers .xcassets.
  6. Ouvrez maintenant votre fichier de projet dans un éditeur tel que le bloc-notes (par exemple .csproj dans Visual Studio) et vérifiez s’il existe des références pointant vers des fichiers du dossier .xcassets. Supprimer toutes ces références. Vérifiez également qu’il n’existe aucune référence pointant vers des icônes d’application ou que vous ne lancez pas d’images sous le dossier Ressources de ce fichier, puis supprimez-les également. 
  7. Assurez-vous que les clés XSAppIconAssets et XSLaunchImageAssets ne sont plus présentes dans info.plist. Supprimez-les s'ils sont toujours présents.
  8. À ce stade, vous avez supprimé tous les fichiers précédents ou références aux icônes de votre application et lancé des images à partir de votre projet. S'ils sont toujours présents, revenez en arrière et supprimez-les. Maintenant, pour recommencer, créez un nouvel "Actif" ou "Média" sous "Catalogues d'actifs" qui crée un dossier .xcassets dans votre projet. Copiez les icônes de vos applications (et lancez les images si nécessaire) de l'étape 1 dans les dossiers respectifs situés sous votre nouveau dossier .xcassets. Assurez-vous que toutes les images requises sont incluses.
  9. Assurez-vous que info.plist contient maintenant les valeurs de clé XSAppIconAssets (et XSLaunchImageAssets si nécessaire) pour le nouvel 'actif' que vous avez créé. Votre fichier de projet (.csproj dans Visual Studio) doit désormais contenir des références à chaque image que vous avez ajoutée à votre nouvel "Actif". Il n'y a pas besoin d'images supplémentaires que celles requises par le projet. Je suggère de supprimer toutes les images supplémentaires de vos actifs.
  10. Si vous avez ajouté une clé nommée CFBundleIconName comme indiqué dans d'autres solutions, supprimez cette clé de info.plist. Ce n'est pas obligatoire. Vous êtes maintenant prêt à soumettre votre application au magasin.
2
Omair

Pour ceux à qui les réponses ci-dessus n'ont pas aidé (passé un bon coup de tête-mur à frapper celui-ci):

Assurez-vous de vérifier l’adhésion cible de votre répertoire d’actifs! Si vous ne liez pas correctement les membres ici, vous obtiendrez la même erreur super-générique (Apple devrait régler les problèmes liés aux messages d'erreur).

 enter image description here

L’appartenance à la cible doit être en corrélation directe avec les cibles pour lesquelles vous utilisez les icônes. Par exemple, j'utilise ce répertoire unique pour mon application principale et pour regarder les actifs de l'application, vous devez le spécifier en sélectionnant le membre approprié. 

Vous n'avez pas du tout besoin de modifier le plist, la plupart de ces réponses sont trompeuses. 

J'espère que cela aide quelqu'un qui frappe ça!

2
hisairnessag3

Dans ma situation Après avoir fait toutes ces choses dans cette page, n'oubliez pas d'archiver à nouveau votre projet :)

1
Emre Sarıçiçek

Chaque développeur d'application utilise le célèbre "Icon Dog"

(c'est dommage qu'ils aient changé le nom!)

 enter image description here

https://iTunes.Apple.com/us/app/app-icon-set-creator/id1052532083?mt=12

C'est de loin l'application n ° 1 la plus populaire utilisée par les développeurs iOS, une sorte de culte.

Cela résout immédiatement tous les problèmes.

1
Fattie

Il y avait un problème avec Visual Studio 17 (v-15.2). Une fois que vous avez mis à jour la version> 15.2, un repère réservé à App-Icon-1024x1024 apparaît dans AssetCatalog> Media> AppIcons.

 enter image description here

1
ZygoteInit

Pas besoin de modifier info.plist. Les erreurs liées aux icônes seraient résolues en remplissant tous les espaces réservés des images pour AppIcon dans images.xcassets .

1
zeeawan

Pour Xcode 9.2 pour les applications iOS 11, quelques points doivent être clarifiés.

1- Cette erreur devrait provenir du fait de ne pas avoir de ressources d’icône dans un catalogue de ressources.

(Vous avez cette erreur en soumettant une application sans catalogues d'actifs).

2- Cette erreur est résolue en ajoutant un catalogue d'actifs avec les icônes requises.

(Dans mon cas, il s'agissait d'une application pour iPhone uniquement et j'ai ajouté des images d'espace réservé de 120x et 180x).

3- Cette erreur n'est pas liée à l'icône "App Store" 1024x1024 

(Lorsque vous oubliez la plus grande icône de magasin, une erreur distincte et spécifique sera affichée, pas cette erreur).

4- Contrairement à la documentation Apple, même avec (Xcode 9 + écrit pour iOS 11), vous pouvez également utiliser le site Web pour soumettre l'icône App Store.

(L'erreur spécifique distincte mentionnée ci-dessus est provoquée par le manque de une icône, pas par l'absence de l'icône dans la construction soumise).

5- CFBundleIconName manquant dans Info.plist n'a pas été modifié.

0
benc

J'ai également eu beaucoup de problèmes à ce sujet - je recevais constamment l'erreur avec le CFBundleIconName manquant et mes icônes n'étaient pas trouvées. Alors voici mon histoire, peut-être que ça va aider quelqu'un. En passant, j'utilise Visual Studio avec Xamarin. 

  1. Ajoutez un catalogue d'actifs à votre projet avec AppIcons (le nom réel de l'actif n'est pas important, mais juste pour les icônes de l'application). Ajoutez toutes les tailles d'icônes nécessaires. Pour l'icône "App Store", j'ai ajouté une icône sans le @ dans le nom, comme le suggère quelqu'un des forums, mais je ne suis pas sûr qu'il soit nécessaire à 100%. Pour générer les différentes tailles d'icônes, il existe de nombreux sites Web et outils pouvant le faire pour vous. Il vous suffit de fournir le format 1024x1024. Ils vont générer le reste.

  2. Dans l’Info.plist, sous «Actifs visuels», puis «Icônes d’application», définissez la source sur l’actif que vous venez de créer.

  3. Maintenant, vérifiez votre Info.plist. Ne l'ouvrez pas avec un éditeur externe , car toutes vos modifications seront écrasées une fois que vous aurez construit votre projet. Procédez comme suit - cliquez avec le bouton droit de la souris sur Info.plist dans l’explorateur de solutions, puis sélectionnez Ouvrir avec -> Editeur de listes de visite génériques.

  4. Vérifiez que vous avez les entrées suivantes:

    -Property = CFBundleIconName, Type = Chaîne. Valeur = Assets.xcassets/AppIcons.appiconset - Propriété = XSAppIconAssets, Type = String. Valeur = Assets.xcassets/AppIcons.appiconset

  5. Notez que Visual Studio ajoute automatiquement, lorsqu'il ajoute quelque chose, 'Resources/Assets.xcassets/AppIcons.appiconset' en tant que valeur. Mais dans mon cas, le catalogue d'actifs a été créé en dehors du dossier Ressources et, par conséquent, mes icônes sont introuvables. Alors, vérifiez où votre dossier de ressources a été créé.

  6. CFBundleIconFiles n'était pas nécessaire, car Apple utilise maintenant le catalogue d'actifs.

J'espère que j'ai été d'une aide :)

0
Sonia

J'ai utilisé la réponse de @Omair et c'est parfait, cependant, j'ai eu des erreurs alors que diverses icônes n'étaient pas trouvées. Le problème était un bogue avec VS2017 lors de la création d'un catalogue d'actifs. Lors de l'ajout d'un nouveau catalogue d'actifs, le dossier du catalogue est créé à la racine du projet et non sous/ressources. Cependant, l'entrée dans info.plist a le chemin sous/ressources. Une fois que j'ai supprimé/les ressources du chemin d'accès à mon catalogue d'actifs, tout a bien fonctionné. J'espère que cela aide quelqu'un!

0
Mark Erickson