Wenn ich meine App validiere, wird folgende Fehlermeldung angezeigt:
Das Anwendungspaket enthält kein Symbol im ICNS-Format, das sowohl ein
512x512
als auch ein512x512@2x
Bild enthält.
Ich verwende, um die icns-Symbole mit der Img2icns- App zu erstellen, und bis heute hat es immer richtig funktioniert. Aber jetzt bekomme ich diesen Fehler und es gibt keine Möglichkeit, ihn zum Laufen zu bringen. Ich habe versucht, zwei PNG-Dateien in Img2icns zusammenzufügen ( 512x512
und 1024x1024
), aber ich erhalte immer diesen Fehler. Ich habe auch versucht, die Anweisungen in Apples OS X Human Interface Guideline zu befolgen, aber wenn ich versuche, die Symbolsätze zu erstellen, wird der folgende Terminalfehler angezeigt:
-bash: Syntaxfehler in der Nähe des unerwarteten Tokens 'newline'
Ich bin nicht sehr gut mit Terminalbefehlen, also mache ich vielleicht etwas falsch. Ich hab geschrieben:
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>
Wenn jemand helfen könnte, wäre es sehr dankbar. Danke, Massy.
Antworten:
Überprüfen Sie die folgenden Anweisungen ( Link ):
Mit anderen Worten, Sie müssen
<iconset filename>
durch den Pfad ersetzen :Da der Pfad Leerzeichen enthält, müssen Sie doppelte Anführungszeichen verwenden, zum Beispiel:
Dieser Befehl sollte ordnungsgemäß funktionieren.
quelle
iconutil
. Sie können das Iconset einfach zu Ihrem Projekt hinzufügen und Xcode es als Teil des Builds für Sie konvertieren lassen.Hier ist ein Skript zum Konvertieren eines 1024x1024-PNG (mit dem Namen "Icon1024.png") in die erforderliche icns-Datei. Speichern Sie es in einer Datei mit dem Namen "CreateICNS.src" in dem Ordner, in dem sich Ihre PNG-Datei im Terminal "cd" befindet, in demselben Ordner und geben Sie "source CreateICNS.src" ein, um es aufzurufen:
quelle
convert abc.png -define png:color-type=6 abc_with_alpha.png
.Während die Verwendung aller Arten von Skripten zum Konvertieren
PNG
von hochauflösenden Bildern in eine Plejade verschiedener Kopien mit niedriger Auflösung praktisch erscheint (und es ist wirklich so), sollte man nicht vergessen, dass diese Art der automatischen Größenänderung wahrnehmbar unvollständige Bilder wiedergibt .Geringere Auflösung - verschwommenes Symbol!
Ich meine, ich liebe
imagemagick
auch, aber es ist nicht das richtige Werkzeug für diese Aufgabe!Stattdessen sollten Sie bei Ihrem Designer immer ein Logo in einem Vektorformat anfordern, z. B. in
SVG
. Mit dieser Funktion können Sie perfektePNG
Dateien in allen erforderlichen Auflösungen manuell vorbereiten und dann eine einzelne.icns
Datei erstellen, mit der Ihr App-Symbol auf jedem einzelnen Bildschirm schön aussieht, von einem billigen iPhone SE bis hin zu einem High-End-Retina-Display der neuesten Version iMac. Sie können Photoshop, GIMP oder ein anderes Tool Ihrer Wahl verwenden, um diese Symbole zu generieren.Ausgehend von den neuesten Richtlinien für die Benutzeroberfläche von Apple ab 2020 sollten Sie die folgenden
PNG
Dateien vorbereiten :Nachdem alle PNG-Dateien vorbereitet wurden, platzieren Sie sie in einem Verzeichnis mit der
.iconset
Erweiterung (Logos.iconset
zum Beispiel) und führen Sie Folgendes ausTerminal
:Wenn nach der Ausführung dieses Befehls keine Fehler aufgetreten sind, wurden alle Dateien ordnungsgemäß verarbeitet, und Sie haben die
Logos.icns
Datei im selben Verzeichnis gespeichert, das alle schönen, gestochen scharfen Logos für Ihre App enthält, die für jeden modernen Bildschirm geeignet sind.quelle
Es gibt ein Befehlszeilen-Knotenmodul, das die gesamte Arbeit zum Konvertieren einer PNG-Datei in ein Iconset-Verzeichnis erledigt:
quelle
Diese Befehle (in Terminal eingegeben) haben bei mir funktioniert, um eine alte icns-Datei in das neue Format zu konvertieren:
Aktualisieren
Der
-c
Parameter zu iconutil wird nicht mehr unterstützt. Verwenden Sie--convert
stattdessen:quelle
Zusätzlicher Kommentar: Wenn Sie eine ICNS-Datei erstellen , müssen Sie alle Bilddateien mit dem Präfix "icon_" umbenennen . Andernfalls schlägt iconutil mit der Fehlermeldung ".iconset: error: ICNS konnte nicht generiert werden" fehl. das ist überhaupt nicht informativ.
quelle
Wie @Henry (Kommentar oben), verwendet jedoch den PNG-Dateinamen als Argument und gibt den ICNS mit demselben Namen aus.
HINWEIS: Es wird erwartet, dass der Name der PNG-Datei nur 1 Punkt für die separate Erweiterung enthält, dh xpto.png.
Speichern Sie den folgenden Code in einer Datei mit dem Namen "CreateICNS.src" in dem Ordner, in dem sich Ihre PNG-Datei befindet.
CODE:
WIE BENUTZT MAN :
Geben Sie dann im Terminal "cd" in denselben Ordner ein und geben Sie Folgendes ein:
Dabei ist {PNG-Dateiname} der Name Ihrer PNG-Datei, dh xpto.png.
Wenn Ihre Datei abc.png heißen würde, würden Sie verwenden:
quelle
Ich habe ein Bash-Skript zum Erstellen von Icns aus einer SVG-Datei geschrieben:
Stellen Sie sicher, dass imagemagick mit librsvg-Unterstützung auf dem Mac installiert ist:
Dieses Skript hat mir sehr gut gedient.
Aktualisieren
Für eine gründlichere Behandlung habe ich ein Befehlszeilenprogramm (in Swift geschrieben) zum Generieren
AppIcon.appiconset
mit dem richtigen Layout und Format erstellt:https://github.com/kindlychung/genicon
quelle
Ich habe @ Henrys Skript überarbeitet, damit es besser aussieht:
Aktualisieren
Der
-c
Parameter zu iconutil wird nicht mehr unterstützt. Verwenden Sie-—convert
stattdessen:quelle
Ganz einfach .png 👉 .icns
Weitere Informationen : http://eon.codes/blog/2016/12/06/Creating-an-app-icon/
Das High Sierra Update
iconutil
ist jetzt strenger in Bezug auf die Quell-PNG-Größe. Mehr dazu im Blogbeitrag nach dem Klick. ✌️quelle
Zum einen müssen Sie, wie ich in einem Kommentar zu Annes Antwort erwähnt habe, wahrscheinlich kein iconutil verwenden. Sie sollten in der Lage sein, das Iconset einfach zu Ihrem Projekt hinzuzufügen und Xcode es als Teil des Builds für Sie konvertieren zu lassen.
In jedem Fall kann dies Ihr Problem sein:
Es gibt keine Punktgröße von 1024 x 1024. Das 1024 x 1024 Pixel große Element (das vor Mountain Lion 1024 Punkte betrug) wird jetzt für 512 x 512 Punkte bei 2x verwendet.
Ihre PNG-Datei muss entsprechend benannt sein: [email protected]
quelle
Apples älterer Icon Composer Version 2.2 funktioniert einwandfrei. Öffnen Sie einfach die darin enthaltenen .ICNS, drücken Sie die Taste 1024 x 1024 und fügen Sie Ihr Bild hinzu.
quelle
@ dardo82 Shell-Code ist gut und funktioniert. Hier ist eine einfachere in sh (für alle * nix) und schneller (wie es wirklich wichtig ist):
quelle
Hier ist eine Funktion, die hauptsächlich auf Henrys Beispiel basiert (könnte nützlich sein in
~/.bash_profile
):Verwendung :
quelle
Lauf
iconutil -c icns Icon.iconset
Hinweis
icon_
Icon.icns
mit dem richtigen Bild sehen, wissen Sie, dass es funktioniertquelle
3x
? Apple benötigt es nicht.Es gibt 2 Aufgaben:
- 10 richtige icns-Dateien erstellen
- Ihr Xcode-Projekt veranlassen, sie korrekt zu verwenden
Da ich stundenlange Probleme mit diesen beiden Aufgaben hatte und es auch nicht mag, wenn ich nicht "sehe", was los ist, hier ein Weg für die vorsichtigen:
Erstellen Sie 10 korrekte icns-Dateien:
Ich habe das obige Skript von Henry verwendet: Es funktioniert immer noch für HighSierra und Xcode 9.2, einschließlich des Befehls 'c'.
Die icns-Datei, die ich erhalten habe, wurde im Finder / Quicklook als nur eine Symbolgröße angezeigt und in der Vorschau wurden nur 8 von 10 Größen angezeigt.
Also benutzte ich Terminal, ging mit CD in meinen Ordner und benutzte den Befehl: iconutil -c iconset (icns-Dateiname) für die gerade erstellte icns-Datei, um die icns-Datei wieder in einen iconset-Ordner zurückzusetzen, und - siehe da - ich konnte sehen meine neu erstellten 10 Symboldateien. Mit dem Schnellblick auf den Iconset-Ordner (und dem Vollbildmodus, um mit dem Schieberegler durch die Ordner zu zoomen) konnte ich überprüfen, ob alle Größen tatsächlich sehr gut aussehen.
Nebenbei bemerkt: Sie sahen besser aus als meine Größenänderungsversuche mit PSE, höchstwahrscheinlich, weil ich mir nicht die Zeit genommen habe, mit allen Größenänderungsoptionen in PSE zu spielen. Wenn Sie PSE verwenden, stellen Sie sicher, dass Ihre PNG-Dateien ohne Farbprofil gespeichert werden. Wenn ich meine Unwissenheit gestehe, ist eine 256x256 @ 2-Datei für mich dieselbe wie eine 512x512-Datei - beide in 72 dpi. Der Versuch, den obigen 144-dpi-Kommentaren zu folgen, hat bei mir nicht funktioniert.
Lassen Sie Ihr Xcode-Projekt sie richtig verwenden:
Zuerst habe ich alle meine erfolglosen Versuche in Xcode gelöscht und eine saubere Version in das Git-Repository übernommen (was klug gewesen wäre, wäre gewesen, zuerst eine saubere Version festzuschreiben - bevor ich das Symbol verzweifelt gestartet habe zusätzlich odyssee).
Ich habe auch sichergestellt, dass in der Datei info.plist kein Zeiger mit dem Eintrag 'Symboldatei' verknüpft ist und dass ich in meinen allgemeinen Projekteinstellungen AppIcon für App-Symbole ausgewählt habe.
Dann habe ich einen Assets.asset-Katalog hinzugefügt und im Assets-Katalog einen neuen AppIcon-Ordner "AppIcons and Launch Images" für OS.
Dann habe ich jede PNG-Bilddatei aus dem Iconset-Ordner in den entsprechenden AppIcon Spaceholder kopiert (Drag & Drop mit gedrückter Option). Also konnte ich wieder sehen, was passiert. Xcode hat das in icns-Dateien konvertiert, oder vielleicht - als mein iconset-Ordner von einem icns-Ordner abgeleitet wurde - wurden die Dateiformate akzeptiert.
Dann archivieren und validieren und es werden keine Fehler beim Hochladen oder Validieren auftreten.
quelle
Ich brauchte das, aber für CMake. Ich wollte auch die Möglichkeit, ihm eine SVG zu geben.
Hier ist das Wesentliche: https://gist.github.com/Qix-/f4090181e55ea365633da8c3d0ab5249
Und der CMake-Code:
quelle
Hallo, für meine Bedürfnisse habe ich ein Droplet erstellt, das nur in Drag & Drop-Symbolen oder in Symbolen zum Suchen in einem Ordner funktioniert (ich habe mich auf Ordner beschränkt, da die Suche nach Volumes aller Symbole viel Zeit in Anspruch nehmen kann). In Drag & Drop können Sie also Ordner oder Anwendungen ablegen, alles, was ein Symbol enthalten kann. Das erstellte Iconset trägt den Namen des ursprünglichen Icons, es befindet sich in einem Verzeichnis "/ aaaicones" und den Pfad des Icons. Beispiel im Ordner "/ aaaicones, wenn Sie xcode.app senden, finden Sie dort" /aaaicones/Applications/xcode.app/access.iconset "und /aaaicones/Applications/xcode.app/access.icns (das neu erstellte Symbol) Seien Sie eine Textdatei, in der der vollständige Pfad der Symbole und der Pfad zum entsprechenden Symbolsatz-Beispiel "/Applications/xcode.app/Contents/Applications/Instruments" nachverfolgt werden.
quelle