Wie kann ich das Symbol für eine Mac-Anwendung in Xcode festlegen?


87

Ich habe viel über das Schreiben von Objective-C-Code und das Entwerfen in Interface Builder gelernt und wollte Symbole für meine einfachen Programme festlegen.

Ich habe allen Größenfeldern in Icon Composer das gleiche JPG hinzugefügt und ein ICNS erhalten, konnte aber nicht herausfinden, wie ich es dem Projekt hinzufügen kann.

Vielen Dank im Voraus.

Antworten:


160

Da Xcode 4.4 Icon Composer nicht mehr die empfohlene Methode zum Erstellen von Symbolen ist und nicht mehr in der Standardinstallation von Xcode enthalten ist. Aufgrund der Einführung von Macs mit Retina-Display wird jetzt empfohlen, hochauflösende Versionen aller Grafiken einschließlich App-Symbolen bereitzustellen.

Gehen Sie wie folgt vor, um Ihrer App unter Xcode> 4.4 ein Symbol zu geben:

  1. Erstellen Sie im Finder einen Ordner [IconName] .iconset

  2. In diesem Ordner platzieren Sie Ihr Symbol als PNG-Dateien. Sie benötigen das Symbol in den Größen 16px, 32px, 64px (nur Retina), 128px, 256px, 512px und 1024px (nur Retina).

  3. Diese Symbole müssen mit dem Muster icon_16x16.png, icon_32x32.png, icon_128x128.png usw. benannt sein

  4. Um Retina-Displays zu unterstützen, müssen Sie außerdem Symboldateien mit doppelter Auflösung hinzufügen, die als icon_16x16@2x.png (mit der Größe 32x32), icon_32x32@2x.png (Größe 64x64) usw. bis zu icon_512x512@2x.png (Größe 1024x1024) bezeichnet werden.

  5. Ziehen Sie diesen .iconset-Ordner [IconName] auf Xcode (ggf. kopieren).

  6. Setzen Sie in der Datei info.plist den Wert "CFBundleIconFile" (Symboldatei als Schlüssel) auf [IconName], jedoch ohne die Erweiterung .iconset

Anmerkungen:

  • Es ist (derzeit) nicht erforderlich, die @ 2x-Symbole anzugeben
  • Es funktioniert (normalerweise) auch, wenn Sie nicht jede Symboldatei bereitstellen
  • Der Ordner iconset sollte keine Datei icon_64x64.png enthalten. Das 64px-Symbol gilt nur für die Retina-Version von icon_32x32

Update: Am Ende enthält Ihr .iconset-Ordner die folgenden 10 Elemente:

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

Offizieller Führer:

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

Zusätzliche Information:

Führen Sie den folgenden Befehl auf dem Terminal aus, um den iconset-Ordner in eine icns-Datei zu konvertieren:

iconutil -c icns [IconName].iconset

Dabei sollte [IconName] durch das Präfix des Iconset-Ordners ersetzt werden. Sie haben jetzt eine Datei mit dem Namen [IconName] .icns. Klicken Sie in Xcode 4.4 in der Zielzusammenfassung mit der rechten Maustaste auf das Fragezeichen für das Symbol und wählen Sie dann die icns-Datei aus. Sie sollten dann sehen, dass das Fragezeichen durch das Symbol ersetzt wird.


In einigen Fällen wird der Symbolsatz nicht automatisch zur Erstellungsphase "Bundle-Ressourcen kopieren" hinzugefügt. In diesem Fall müssen Sie ihn manuell zur Erstellungsphase hinzufügen.
Reimund

1
Hinweis: Xcode 4.4 überprüft und konvertiert automatisch einen Iconset-Ordner in eine Icns-Datei. Sie müssen lediglich den Iconset-Ordner zu Ihrem Projekt hinzufügen und das Projekt erstellen. Die generierte icns-Datei wird automatisch zum erstellten Produkt hinzugefügt.
EsbenB

1
@ Kadam Du hast recht, das war schon immer so. Ich habe die Antwort leicht geändert, um die Benennung des Retina-Symbols klarer zu machen.
CodingFriend1

1
^ Oh, die Größen 64x64 oder 1024x1024 werden in dieser Dokumentation nicht erwähnt: developer.apple.com/library/mac/#documentation/… ... daher wird die Anzahl auf 10 reduziert!
Chris Allinson

1
@ChrisAllinson Sie benötigen Symbole mit einer Größe von 64px und 1024px. Aber diese heißen icon_32x32@2xund icon_512x512@2x.png. Ich habe der Antwort die Liste aller Symbolnamen hinzugefügt, um dies zu verdeutlichen.
CodingFriend1

32

Ab Xcode 7 (nicht sicher, wann dies ursprünglich eingeführt wurde) können Sie die Datei Assets.xcassets für App-Symbole verwenden. Diese Datei ist standardmäßig für neue Projekte enthalten.

Einfach:

  1. Gehen Sie zu den Einstellungen Ihres Ziels und stellen Sie sicher, dass unter Allgemein , App-Symbole die Quelle auf AppIcon eingestellt ist .
  2. Fügen Sie alle 10 PNG-Symbole zum AppIcon-Image Ihrer Assets.xcassets hinzu.
  3. Abgeleitete Daten löschen wenn Sie die App zuvor gestartet haben. Andernfalls wird weiterhin das Standardsymbol angezeigt.
  4. Führen Sie die App aus. Es sollte jetzt Ihr Symbol im Dock, im Application Switcher und an einer anderen Stelle anzeigen, an der es angezeigt werden soll.

27

Befolgen Sie diese Schritte , um Ihrem Projekt ein Anwendungssymbol hinzuzufügen. Dies ist das Symbol, das vom MacOS in der Dokumentleiste und in der Alt-Tab-Anzeige angezeigt wird.

  • Erstellen Sie eine .icns-Ressourcendatei mit Symbol
  • Legen Sie es in den Ordner "resources / macos"
  • Fügen Sie es der Ressourcengruppe im xcode-Projekt hinzu
  • Bearbeiten Sie die Datei Info.plist und ändern Sie die Wertzeichenfolge "CFBundleIconFile" in "icon".

Das img2icns- Tool kann auch nützlich sein, um Bilder in ein Symbol zu konvertieren.


… Ändern Sie die Wertzeichenfolge "CFBundleIconFile" in den Namen Ihrer ICNS-Datei. FTFY
Francis McGrew

In Xcode 7 müssen Sie die ICNS-Datei nicht in einem bestimmten Ordner ablegen, solange sie sich im Bundle befindet. Ich habe einen Ordner / Assets erstellt und die Datei icon.icns einfach in den Ordner in Xcode gezogen. Dann habe ich Info.plist bearbeitet und die Icon-Datei auf icon.ins gesetzt. Sie müssen die Funktion auch deaktivieren, um Assests in den allgemeinen Einstellungen für die App zu verwenden.
Gbdavid

7

Schritte zum Hinzufügen eines Anwendungssymbols zu Ihrem Kakaoprojekt.

  1. Finden Sie 'Icon Composer' aus dem Rampenlicht.
  2. Ziehen Sie das Symbol (Name sollte wie imagename.icns sein) in die angegebenen Felder und legen Sie es dort ab.
  3. Wählen Sie ein Feld aus und speichern Sie es.
  4. Ziehen Sie das gespeicherte Bild per Drag & Drop in den Ressourcenordner Ihrer Anwendung.
  5. Ziel auswählen -> Rechtsklick auf Projektnamen -> GetInfo auswählen.
  6. Geben Sie unter Eigenschaften den Namen 'Symboldatei' ein.
  7. Bereinigen Sie jetzt Ihre Anwendung und führen Sie sie aus.

1
6 Jahre später gilt dies nicht mehr
mix3d

7

Es ist einfach

  1. Verwenden Sie ein automatisches Tool (z. B. IconFly), um korrekte ICNS oder Iconsets mit allen erforderlichen Größen zu erstellen.

  2. Ziehen Sie dann das erstellte ICNS oder Iconset per Drag & Drop auf Xcode.

  3. Setzen Sie in der Datei info.plist den Wert "CFBundleIconFile" auf [IconName].


3

Xcode 8.2.1

  1. Konvertieren Sie .png 👉.icns über IconMaker

  2. Fügen Sie die Datei AwesomeApp.icns im selben Ordner wie info.plist hinzu

  3. Ziehen Sie die Datei AwesomeApp.icns in xcode im selben Ordner wie info.plist

  4. In info.plist setzen Sie das Symbol auf AwesomeApp.icns


4
Sie sollten auch Befehl + Option + Umschalt + K ausführen, um den Build zu bereinigen. Dann erstellen Sie die App erneut und das Symbol sollte zutreffen
Luka Kerr

Klingt nach einer Tiefenreinigung! In einigen Fällen kann auch ein Neustart von xcode und Ihrem Computer hilfreich sein: P Persönlich musste ich den Build nicht bereinigen, bevor dies funktionierte. Danke für den Tipp Luka! Verwenden Sie voll für zukünftige Zuschauer.
Eonist

@ eonist IconMaker Link ist tot.
Jamescampbell

@ Jamescampbell Hey alter Sport. Jetzt aktualisiert
Eonist

0

Schritt 1: Rufen Sie den Namen der Symboldatei aus der Datei info.plist ab und legen Sie den Ordner icns (Symboldatei) im Ordner SourceCode / resources ab

Schritt 2: Und dasselbe gilt für xcode: Sie müssen alle Bilder von xcode mithilfe von copyallframeworks oder copyall-Ressourcendateien in Ihrem xcode kopieren und die App erneut erstellen.


@ Asif.Ali Antwort mit Schritten gegeben.
Rachit Kapadia
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.