Comment puis-je définir l'icône d'une application Mac dans Xcode?


87

J'ai beaucoup appris sur l'écriture de code Objective-C et la conception dans Interface Builder et je voulais définir des icônes pour mes programmes simples.

J'ai ajouté le même JPG à tous les champs de taille dans Icon Composer et j'ai obtenu un ICNS, mais je ne savais pas comment l'ajouter au projet.

Merci d'avance.

Réponses:


162

Depuis Xcode 4.4 Icon Composer n'est plus le moyen recommandé pour créer des icônes et n'est plus inclus dans l'installation standard de Xcode. En raison de l'introduction de Mac avec écran Retina, il est désormais recommandé de fournir des versions haute résolution de tous les graphiques, y compris les icônes d'application.

Pour donner à votre application une icône sous Xcode> 4.4, procédez comme suit:

  1. Créer un dossier [IconName] .iconset dans le Finder

  2. Dans ce dossier, placez votre icône sous forme de fichiers png. Vous aurez besoin de l'icône aux tailles 16px, 32px, 64px (rétine uniquement), 128px, 256px, 512px et 1024px (rétine uniquement)

  3. Ces icônes doivent être nommées avec le motif icon_16x16.png, icon_32x32.png, icon_128x128.png et ainsi de suite

  4. Pour prendre en charge les écrans Retina, vous devez également ajouter des fichiers d'icônes à double résolution, nommés icon_16x16@2x.png (de taille 32x32), icon_32x32@2x.png (taille 64x64) et ainsi de suite jusqu'à icon_512x512@2x.png (taille 1024x1024).

  5. faites glisser ce dossier [IconName] .iconset vers Xcode (copiez si nécessaire)

  6. dans le fichier info.plist, définissez la valeur "CFBundleIconFile" (Icon File as Key) sur [IconName] mais sans l'extension .iconset

Annotations:

  • il n'est (actuellement) pas nécessaire de fournir les icônes @ 2x
  • cela fonctionnera (généralement) aussi si vous ne fournissez pas tous les fichiers d'icônes
  • le dossier du jeu d'icônes ne doit pas contenir de fichier icon_64x64.png. l'icône 64px est uniquement pour la version rétine de l'icône_32x32

Mise à jour: à la fin, votre dossier .iconset contient les 10 éléments suivants:

icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png

Guide officiel:

https://developer.apple.com/library/content/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Optimizing/Optimizing.html

Information additionnelle:

Pour convertir le dossier du jeu d'icônes en fichier icns, exécutez la commande suivante sur le terminal:

iconutil -c icns [IconName].iconset

où [IconName] doit être remplacé par le préfixe du dossier du jeu d'icônes. Vous avez maintenant un fichier appelé [IconName] .icns. Dans Xcode 4.4, dans le Résumé de la cible, cliquez avec le bouton droit sur le point d'interrogation de l'icône, puis sélectionnez le fichier icns. Vous devriez alors voir le point d'interrogation être remplacé par l'icône.


Dans certains cas, le jeu d'icônes ne sera pas automatiquement ajouté à la phase de construction `` Copier les ressources du lot '', dans ce cas, vous devez l'ajouter manuellement à la phase de construction.
Reimund

1
Remarque: Xcode 4.4 valide et convertit automatiquement un dossier d'icônes en fichier icns. Tout ce que vous avez à faire est d'ajouter le dossier du jeu d'icônes à votre projet et de créer le projet. Le fichier icns généré est ajouté automatiquement au produit construit.
EsbenB

1
@kadam Vous avez raison, cela a toujours été le cas. J'ai légèrement modifié la réponse pour rendre la dénomination de l'icône de la rétine plus claire.
codingFriend1

1
^ oh, ils ne mentionnent pas les tailles 64x64 ou 1024x1024 dans cette documentation: developer.apple.com/library/mac/#documentation/ ... ... donc cela réduit le nombre à 10!
Chris Allinson

1
@ChrisAllinson Vous avez besoin d'icônes de taille 64px et 1024px. Mais ceux-ci sont nommés icon_32x32@2xet icon_512x512@2x.png. J'ai ajouté la liste de tous les noms d'icônes à la réponse pour clarifier cela.
codingFriend1

32

À partir de Xcode 7 (je ne sais pas quand cela a été introduit à l'origine), vous pouvez utiliser le fichier Assets.xcassets pour les icônes d'application. Ce fichier est inclus par défaut pour les nouveaux projets.

Simplement:

  1. Accédez aux paramètres de votre cible et assurez-vous que sous Général , Icônes d'application , la source est définie sur AppIcon .
  2. Ajoutez les 10 icônes png à l'image AppIcon de votre Assets.xcassets.
  3. Supprimez les données dérivées si vous avez déjà lancé l'application, sinon elle continuera à afficher l'icône par défaut.
  4. Exécutez l'application; il devrait maintenant afficher votre icône dans le Dock, le sélecteur d'application et partout ailleurs où elle devrait apparaître.

27

Suivez ces étapes pour ajouter une icône d'application à votre projet. C'est l'icône qui sera affichée par le MacOS dans la barre de documents et dans l'affichage de l'onglet alt.

  • Créer un fichier de ressources icon .icns
  • Placez-le dans le dossier "resources / macos"
  • Ajoutez-le au groupe de ressources dans le projet xcode
  • Modifiez le fichier Info.plist et remplacez la chaîne de valeur "CFBundleIconFile" par "icon"

En outre, l' outil img2icns peut être utile pour convertir des images en icône.


… Remplacez la chaîne de valeur "CFBundleIconFile" par le nom de votre fichier .icns. FTFY
Francis McGrew

Dans Xcode 7, vous n'avez pas à placer le fichier .icns dans un dossier spécifique, tant qu'il se trouve à l'intérieur du bundle. J'ai créé un dossier / Actifs et j'ai simplement fait glisser le fichier icon.icns dans le dossier de Xcode. Ensuite, j'ai édité Info.plist et défini le fichier Icon sur icon.ins. Vous devez également désactiver la fonctionnalité pour utiliser les actifs dans les paramètres `` généraux '' de l'application.
gbdavid

7

Étapes pour ajouter une icône d'application à votre projet cacao.

  1. Trouvez «Icon Composer» sur Spotlight.
  2. Faites glisser et déposez l'icône (le nom doit être comme imagename.icns) dans les cases indiquées.
  3. Sélectionnez une boîte et enregistrez-la.
  4. Faites glisser et déposez l'image enregistrée dans le dossier Ressources de votre application.
  5. Sélectionnez la cible -> cliquez avec le bouton droit sur le nom du projet -> Sélectionnez GetInfo.
  6. Dans Propriétés, entrez le nom du 'Fichier d'icônes'.
  7. Maintenant Clean Build et exécutez votre application.

1
6 ans plus tard, ce n'est plus applicable
mix3d

7

C'est facile

  1. Utilisez un outil automatique (tel que IconFly) pour créer un ICNS ou un jeu d'icônes correct avec toute la taille nécessaire.

  2. Ensuite, faites glisser et déposez l'ICNS ou le jeu d'icônes créé vers Xcode.

  3. dans le fichier info.plist, définissez la valeur "CFBundleIconFile" sur [IconName]


3

Xcode 8.2.1

  1. Convertir .png 👉.icns via IconMaker

  2. Ajoutez le fichier AwesomeApp.icns dans le même dossier que info.plist

  3. Faites glisser le fichier AwesomeApp.icns dans xcode dans le même dossier que info.plist

  4. Dans l'icône de jeu info.plist: à AwesomeApp.icns


4
Vous devez également exécuter la commande + option + shift + K qui nettoie la construction. Puis reconstruisez l'application et l'icône devrait s'appliquer
Luka Kerr

Sonne comme un nettoyage en profondeur! Un redémarrage de xcode et de votre ordinateur peut également faire l'affaire dans certains cas: P Personnellement, je n'ai pas eu à nettoyer la compilation avant que cela fonctionne. Merci pour la pointe Luka! utiliser plein pour les futurs spectateurs.
eonist

Le lien @eonist IconMaker est mort.
jamescampbell

@ jamescampbell Hé vieux sport. Mis à jour maintenant
Eonist

0

Étape 1: Obtenez le nom du fichier d'icône à partir de info.plist et placez le dossier icns (fichier d'icône) dans le dossier SourceCode / resources

Étape 2: Et il en va de même pour xcode, vous devez copier toutes les images de xcode à l'aide de copyallframeworks ou du fichier de ressources copyall dans votre xcode et reconstruire l'application.


@ Asif.Ali Réponse donnée avec des étapes.
Rachit kapadia
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.