Cuando estoy validando mi aplicación, aparece este error:
el paquete de la aplicación no contiene un icono en formato ICNS, que contiene tanto
512x512
una512x512@2x
imagen como una .
Yo solía hacer los íconos icns con la aplicación Img2icns y hasta hoy siempre funcionaba correctamente. Pero ahora recibo ese error y no hay forma de que funcione. Intenté juntar dos archivos PNG ( 512x512
y 1024x1024
) en Img2icns pero siempre obtengo ese error. También intenté seguir las instrucciones de la Guía de interfaz humana OS X de Apple, pero cuando trato de hacer los conjuntos de iconos, aparece este error de terminal:
-bash: error de sintaxis cerca del token inesperado 'nueva línea'
No soy muy bueno con los comandos de la terminal, así que tal vez esté haciendo algo mal. Escribí:
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>
Si alguien pudiera ayudar sería muy apreciado. Gracias, Massy.
Respuestas:
Consulte las siguientes instrucciones ( enlace ):
En otras palabras, debe reemplazar
<iconset filename>
por la ruta:Dado que la ruta contiene espacios, debe usar comillas dobles, por ejemplo:
Este comando debería funcionar correctamente.
fuente
iconutil
embargo, probablemente no necesite usarlo . Puede simplemente agregar el conjunto de iconos a su proyecto y dejar que Xcode lo convierta por usted como parte de la compilación. Eso se trata en la sección inmediatamente anterior (muy corta): developer.apple.com/library/mac/documentation/GraphicsAnimation/…Aquí hay un script para convertir un png de 1024x1024 (llamado "Icon1024.png") al archivo icns requerido. Guárdelo en un archivo llamado "CreateICNS.src" en la carpeta donde se encuentra su archivo png en el terminal "cd" en la misma carpeta y escriba "source CreateICNS.src" para llamarlo:
fuente
convert abc.png -define png:color-type=6 abc_with_alpha.png
.Si bien el uso de todo tipo de scripts para convertir
PNG
imágenes de alta resolución en una pléyade de diferentes copias de baja resolución puede parecer útil (y realmente lo es), no se debe olvidar que este tipo de cambio de tamaño automático generará imágenes perceptiblemente imperfectas .Menos resolución, más borroso el icono.
Quiero decir, a mí
imagemagick
también me encanta , ¡pero no es la herramienta adecuada para esta tarea!En su lugar, siempre debe solicitar un logotipo en algún formato vectorial a su diseñador, por ejemplo, en
SVG
. Con esto a mano, puede preparar manualmentePNG
archivos perfectos en todas las resoluciones requeridas y luego hacer una.icns
archivo, lo que hará que el ícono de su aplicación se vea hermoso en cada pantalla, desde un iPhone SE barato hasta una pantalla Retina de alta gama de lo último iMac. Puede usar Photoshop, GIMP o cualquier otra herramienta de su elección para generar estos PNG.A partir de las últimas Directrices de interfaz humana de Apple a partir de 2020, debe preparar los siguientes
PNG
archivos:Después de que todos los archivos PNG estén preparados, colóquelos en algún directorio con
.iconset
extensión (Logos.iconset
por ejemplo) y ejecute lo siguiente desdeTerminal
:Si no hubo errores después de ejecutar este comando, entonces todos los archivos se procesaron correctamente y obtuviste el
Logos.icns
archivo en el mismo directorio, que contiene todos los hermosos logotipos nítidos para tu aplicación que se adaptarán a cualquier pantalla moderna.fuente
Hay un módulo de nodo de línea de comandos que hace todo el trabajo de convertir un archivo PNG en un directorio de conjunto de iconos:
fuente
Estos comandos (ingresados en la Terminal) me funcionaron para convertir un archivo icns antiguo al nuevo formato:
Actualizar
El
-c
parámetro de iconutil ya no es compatible. Utilice en su--convert
lugar:fuente
Comentario adicional, cuando crea un archivo .icns, necesita cambiar el nombre de todos los archivos de imagen con el prefijo "icon_ ", de lo contrario, iconutil fallará con el mensaje de error: ".iconset: error: No se pudo generar ICNS". que no es informativo en absoluto.
fuente
Igual que @Henry (comentario anterior) pero toma como argumento el nombre del archivo PNG y genera el ICNS con el mismo nombre.
NOTA: Solo se espera que el nombre del archivo PNG tenga 1 punto de extensión separada, es decir, xpto.png.
Por lo tanto, guarde el código a continuación en un archivo llamado "CreateICNS.src" en la carpeta donde está su archivo png.
CODIGO:
CÓMO UTILIZAR :
Luego, en la terminal, "cd" a la misma carpeta y escribe:
donde {nombre de archivo PNG} es el nombre de su archivo PNG, es decir, xpto.png.
Si su archivo se llamaría abc.png, usaría:
fuente
He escrito un script bash para hacer icns a partir de un archivo svg:
Asegúrese de tener imagemagick instalado con soporte librsvg, en mac:
Este guión me ha servido bastante bien.
Actualizar
Para un tratamiento más completo, he creado una herramienta de línea de comandos (escrita en Swift) para generar
AppIcon.appiconset
con el diseño y formato correctos:https://github.com/kindlychung/genicon
fuente
He refactorizado el script de @ Henry para que se vea mejor:
Actualizar
El
-c
parámetro de iconutil ya no es compatible. Utilice en su-—convert
lugar:fuente
Muerto simple .png 👉 .icns
Más información : http://eon.codes/blog/2016/12/06/Creating-an-app-icon/
Actualización de High Sierra
iconutil
ahora es más estricta con respecto al tamaño .png de origen. Más sobre esto en la publicación del blog después del salto. ✌️fuente
Por un lado, como mencioné en un comentario sobre la respuesta de Anne, probablemente no necesite usar iconutil. Debería poder agregar el conjunto de iconos a su proyecto y dejar que Xcode lo convierta por usted como parte de la compilación.
De cualquier manera, este puede ser tu problema:
No hay un tamaño de 1024 por 1024 puntos. El elemento de 1024 por 1024 píxeles (que era 1024 puntos antes de Mountain Lion) ahora se usa para 512 por 512 puntos @ 2x.
Su archivo PNG debe tener el nombre apropiado: [email protected]
fuente
La versión 2.2 de Icon Composer más antigua de Apple funciona bien, simplemente abra el .ICNS, presione el botón 1024x1024 y agregue su imagen.
fuente
El código de shell de @ dardo82 es bueno y funciona. Aquí hay uno más simple en sh (para todos los * nix) y más rápido (como si realmente importara):
fuente
Aquí hay una función basada principalmente en el ejemplo de Henry (podría ser útil en
~/.bash_profile
):Uso :
fuente
correr
iconutil -c icns Icon.iconset
Nota
icon_
Icon.icns
con la imagen correcta, sabe que funcionafuente
3x
? Apple no lo requiere.Hay 2 tareas:
- crear 10 archivos icns correctos
- hacer que su proyecto Xcode los use correctamente
Como tuve problemas de una hora con ambas tareas, y tampoco me gusta cuando no 'veo' lo que está sucediendo, aquí hay un camino para los cautelosos:
Cree 10 archivos icns correctos:
utilicé el script anterior de Henry: todavía funciona para HighSierra y Xcode 9.2, incluido el comando 'c'.
El archivo icns que obtuve apareció como un solo tamaño de icono en Finder / Quicklook y en Vista previa mostró solo 8 de 10 tamaños.
Así que usé terminal, fui con cd a mi carpeta y usé el comando: iconutil -c iconset (nombre de archivo icns) en el archivo icns recién creado para revertir el archivo icns a una carpeta de conjunto de iconos, y, he aquí, pude ver mis 10 archivos de iconos recién creados. Usando Vista rápida en la carpeta del conjunto de iconos (y usando el modo de pantalla completa para poder hacer zoom a través de ellos con el control deslizante), pude verificar que todos los tamaños se vean realmente bien.
Como comentario al margen: se veían mejor que mis intentos de cambio de tamaño con PSE, muy probablemente porque no me tomé el tiempo para jugar con todas las opciones de cambio de tamaño en PSE. Si usa PSE, asegúrese de que sus archivos png se guarden sin perfil de color. Además, confesando mi ignorancia, para mí un archivo de 256x256 @ 2 es lo mismo que un archivo de 512x512, ambos en 72 ppp. Intentar seguir los comentarios de 144 dpi anteriores no funcionó para mí.
Haga que su proyecto de Xcode los use correctamente:
Primero eliminé todos mis intentos infructuosos dentro de Xcode y envié una versión limpia al repositorio de git (lo que hubiera sido inteligente, hubiera sido enviar una versión limpia primero, antes de iniciar frenéticamente el icono además odisea).
También me aseguré de que en el archivo info.plist no haya ningún puntero vinculado a la entrada 'archivo de icono' y que en la configuración general de mi proyecto había elegido AppIcon para iconos de aplicaciones.
Luego agregué un catálogo de assets.asset y dentro del catálogo de assets una nueva Carpeta AppIcon 'AppIcons and Launch Images' para OS.
Luego copié (arrastre y suelte con la opción presionada) de la carpeta del conjunto de iconos cada archivo de imagen png en el correspondiente marcador de espacio de AppIcon. De nuevo, pude ver lo que está sucediendo. Xcode lo convirtió en archivos icns, o tal vez, como mi carpeta de conjunto de iconos deriva de una carpeta icns, los formatos de archivo fueron aceptados.
Luego archive y valide y no habrá errores al cargar o validar.
fuente
Necesitaba esto, pero para CMake. También quería la opción de darle un SVG.
Aquí está la esencia: https://gist.github.com/Qix-/f4090181e55ea365633da8c3d0ab5249
Y el código de CMake:
fuente
Hola, para mis necesidades hice un droplet que funciona solo para arrastrar y soltar íconos o íconos para buscar en una carpeta (me limité a carpetas ya que las búsquedas en Volúmenes de todos los íconos pueden llevar mucho tiempo). Entonces, al arrastrar y soltar, puede soltar carpetas o aplicaciones, cualquier cosa que pueda contener un icono. El conjunto de iconos creado lleva el nombre del icono original, se coloca en un directorio "/ aaaicones" y la ruta del icono. Ejemplo en la carpeta "/ aaaicones si envía xcode.app encontrará" /aaaicones/Applications/xcode.app/access.iconset "y /aaaicones/Applications/xcode.app/access.icns (el icono recreado) allí ser un archivo de texto donde se rastrea la ruta completa de los íconos, y la ruta al ejemplo correspondiente del conjunto de íconos "/Applications/xcode.app/Contents/Applications/Instruments.
fuente