Quando estou validando meu aplicativo, recebo este erro:
o pacote de aplicativos não contém um ícone no formato ICNS, contendo ae
512x512
uma512x512@2x
imagem.
Costumo fazer ícones icns com o app Img2icns e até hoje sempre funcionou direito. Mas agora estou recebendo aquele erro e não há como fazer funcionar. Tentei colocar dois arquivos PNG juntos ( 512x512
e 1024x1024
) no Img2icns, mas sempre recebo esse erro. Eu também tentei seguir as instruções nas Diretrizes de Interface Humana do OS X da Apple, mas quando tento fazer os conjuntos de ícones recebo este erro de terminal:
-bash: erro de sintaxe próximo ao token inesperado 'nova linha'
Não sou muito bom com comandos de terminal, então talvez esteja fazendo algo errado. Eu escrevi:
iconutil -c icns </Users/myname/SDK Mac Apps/MyApp/grafica/icon.iconset>
Se alguém pudesse ajudar, seria muito apreciado. Obrigado, Massy.
Respostas:
Confira as seguintes instruções ( link ):
Em outras palavras, você precisa substituir
<iconset filename>
pelo caminho:Como o caminho contém espaços, você precisa usar aspas duplas, por exemplo:
Este comando deve funcionar corretamente.
fonte
iconutil
, no entanto. Você pode simplesmente adicionar o conjunto de ícones ao seu projeto e deixar o Xcode convertê-lo para você como parte da construção. Isso é abordado na seção imediatamente anterior (muito curta): developer.apple.com/library/mac/documentation/GraphicsAnimation/…Aqui está um script para converter um png 1024x1024 (denominado "Icon1024.png") no arquivo icns necessário. Salve-o em um arquivo chamado "CreateICNS.src" na pasta onde seu arquivo png está no terminal "cd" para a mesma pasta e digite "source CreateICNS.src" para chamá-lo:
fonte
convert abc.png -define png:color-type=6 abc_with_alpha.png
.Embora o uso de todos os tipos de scripts para converter imagens de alta resolução
PNG
em uma infinidade de diferentes cópias de baixa resolução possa parecer útil (e realmente é), não se deve esquecer que esse tipo de redimensionamento automático irá renderizar imagens perceptivelmente imperfeitas .Menor a resolução - mais borrado o ícone!
Quer dizer, eu
imagemagick
também adoro , mas não é a ferramenta certa para essa tarefa!Em vez disso, você deve sempre solicitar um logotipo em algum formato vetorial de seu designer, por exemplo, em
SVG
. Com isso em mãos, você pode preparar manualmentePNG
arquivos perfeitos em todas as resoluções necessárias e, em seguida, fazer um único.icns
arquivo, o que tornará o ícone do seu aplicativo lindo em cada tela, de um iPhone SE barato a algumas telas Retina de última geração iMac. Você pode usar Photoshop, GIMP ou qualquer outra ferramenta de sua escolha para gerar esses PNGs.Com base nas últimas Diretrizes de Interface Humana da Apple em 2020, você deve preparar os seguintes
PNG
arquivos:Depois que todos os arquivos PNG forem preparados, coloque-os em algum diretório com
.iconset
extensão (Logos.iconset
por exemplo) e execute o seguinte a partir deTerminal
:Se não houve erros após a execução deste comando, todos os arquivos foram processados corretamente e você obteve o
Logos.icns
arquivo no mesmo diretório, contendo todos os belos logotipos nítidos para seu aplicativo que se adequam a qualquer tela moderna.fonte
Há um módulo de nó de linha de comando que faz todo o trabalho de conversão de um arquivo PNG em um diretório de conjunto de ícones:
fonte
Esses comandos (inseridos no Terminal) funcionaram para mim para converter um arquivo icns antigo para o novo formato:
Atualizar
O
-c
parâmetro para iconutil não é mais compatível. Use em seu--convert
lugar:fonte
Comentário adicional, ao criar o arquivo .icns, você precisa renomear todos os arquivos pic com o prefixo "icon_ ", caso contrário, o iconutil falhará com a mensagem de erro: ".iconset: erro: Falha ao gerar ICNS." o que não é nada informativo.
fonte
O mesmo que @Henry (comentário acima), mas leva como argumento o nome do arquivo PNG e gera o ICNS com o mesmo nome.
NOTA: O nome do arquivo PNG deve ter apenas 1 ponto para a extensão separada, ou seja, xpto.png.
Portanto, salve o código abaixo em um arquivo chamado "CreateICNS.src" na pasta onde está seu arquivo PNG.
CÓDIGO:
COMO USAR :
Em seguida, no terminal, "cd" para a mesma pasta e digite:
onde {PNG filename} é o nome do seu arquivo PNG, ou seja, xpto.png.
Se o nome do seu arquivo fosse abc.png, você usaria:
fonte
Eu escrevi um script bash para fazer icns a partir de um arquivo svg:
Certifique-se de ter o imagemagick instalado com suporte a librsvg, no mac:
Este script me serviu muito bem.
Atualizar
Para um tratamento mais completo, criei uma ferramenta de linha de comando (escrita em Swift) para gerar
AppIcon.appiconset
com o layout e formato corretos:https://github.com/kindlychung/genicon
fonte
Refatorei o script de @Henry para torná-lo melhor:
Atualizar
O
-c
parâmetro para iconutil não é mais compatível. Use em seu-—convert
lugar:fonte
Dead simple .png 👉 .icns
Mais informações : http://eon.codes/blog/2016/12/06/Creating-an-app-icon/
A atualização do High sierra
iconutil
agora é mais restrita quanto ao tamanho .png de origem. Mais sobre isso na postagem do blog após o salto. ✌️fonte
Por um lado, como mencionei em um comentário sobre a resposta de Anne, você provavelmente não precisa usar o iconutil. Você deve ser capaz de apenas adicionar o conjunto de ícones ao seu projeto e deixar o Xcode convertê-lo para você como parte da construção.
De qualquer forma, este pode ser o seu problema:
Não há tamanho de 1024 por 1024 pontos. O elemento de 1024 por 1024 pixels (que era de 1024 pontos antes do Mountain Lion) agora é usado para 512 por 512 pontos @ 2x.
Seu arquivo PNG deve ter o nome apropriado: [email protected]
fonte
O antigo Icon Composer da Apple versão 2.2 funciona bem, basta abrir o .ICNS nele, pressionar o botão 1024x1024 e adicionar sua imagem.
fonte
O código de shell de @ dardo82 está bom e funcionou. Aqui está um mais simples em sh (para todos os * nix's) e mais rápido (como se realmente importasse):
fonte
Aqui está uma função baseada principalmente no exemplo de Henry (pode ser útil em
~/.bash_profile
):Uso :
fonte
Corre
iconutil -c icns Icon.iconset
Nota
icon_
Icon.icns
com a imagem correta, você sabe que funcionafonte
3x
? A Apple não exige isso.Existem 2 tarefas:
- criar 10 arquivos icns corretos
- fazer seu projeto Xcode usá-los corretamente
Como tive problemas de horas com ambas as tarefas, e também não gosto quando não 'vejo' o que está acontecendo, aqui um caminho para os cautelosos:
Crie 10 arquivos icns corretos:
Usei o script acima de Henry: ainda funciona para HighSierra e Xcode 9.2, incluindo o comando 'c'.
O arquivo icns que recebi apareceu como apenas um tamanho de ícone no Finder / Quicklook e na Visualização mostrou apenas 8 de 10 tamanhos.
Então eu usei o terminal, fui com cd para minha pasta e usei o comando: iconutil -c iconset (nome de arquivo icns) no arquivo icns recém-criado para reverter o arquivo icns de volta para uma pasta de iconset, e - vejam só - eu pude ver meus 10 arquivos de ícone recém-criados. Usando a visualização rápida na pasta do conjunto de ícones (e usando o modo de tela inteira para poder ampliá-los com o controle deslizante), pude verificar se todos os tamanhos estão realmente parecendo muito bem.
Como um aparte: eles pareciam melhores do que minhas tentativas de redimensionamento com PSE, provavelmente porque eu não perdi tempo para brincar com todas as opções de redimensionamento no PSE. Se você usar PSE, certifique-se de que seus arquivos PNG sejam salvos sem perfil de cor. Além disso, confessando minha ignorância, para mim um arquivo 256x256 @ 2 é igual a um arquivo 512x512 - ambos em 72dpi. Tentar seguir os comentários de 144 dpi acima não funcionou para mim.
Obtenha seu projeto Xcode para usá-los corretamente:
primeiro eu excluí todas as minhas tentativas infrutíferas dentro do Xcode e enviei uma versão limpa para o repositório git (o que teria sido inteligente, teria sido submeter uma versão limpa primeiro - antes de iniciar freneticamente o ícone adição odyssee).
Também me certifiquei de que no arquivo info.plist não há nenhum ponteiro vinculado à entrada do 'arquivo de ícone' e que nas configurações gerais do projeto eu escolhi AppIcon para ícones de aplicativos.
Em seguida, adicionei um catálogo de assets.asset e dentro do catálogo de ativos uma nova pasta AppIcon 'AppIcons and Launch Images' para OS.
Em seguida, copiei (arraste e solte com a opção pressionada) da pasta do conjunto de ícones cada arquivo de imagem png para o respectivo AppIcon Spaceholder. Então, novamente, eu pude ver o que está acontecendo. O Xcode converteu isso em arquivos icns, ou talvez - como minha pasta iconset derivada de uma pasta icns - os formatos de arquivo foram aceitos.
Em seguida, arquive e valide e não haverá erros durante o upload ou validação.
fonte
Eu precisava disso, mas para CMake. Também queria a opção de fornecer um SVG.
Aqui está a essência: https://gist.github.com/Qix-/f4090181e55ea365633da8c3d0ab5249
E o código CMake:
fonte
Olá, para minhas necessidades fiz um droplet que funciona em arrastar e soltar ícones sozinho ou ícones para pesquisar em uma pasta (limitei-me a pastas porque as pesquisas em Volumes de todos os ícones podem demorar muito). Assim, ao arrastar e soltar, você pode soltar pastas ou aplicativos, qualquer coisa que possa conter um ícone. O conjunto de ícones criado leva o nome do ícone original, é colocado em um diretório "/ aaaicones" e o caminho do ícone. Exemplo na pasta "/ aaaicones se você enviar xcode.app, você encontrará" /aaaicones/Applications/xcode.app/access.iconset "e /aaaicones/Applications/xcode.app/access.icns (o ícone recriado). ser um arquivo de texto onde é traçado o caminho completo dos ícones, E o caminho para o exemplo do conjunto de ícones correspondente "/Applications/xcode.app/Contents/Applications/Instruments.
fonte