2009-03-14 10 views

risposta

23

nel vostro info.plist aggiungere

<key>CFBundleIconFile</key> 
<string>iconfile</string> 

con l'icona del file iconfile.icns nella directory Risorse

+0

Funziona perfettamente. Grazie. –

+3

La risposta è corretta ma il Finder di solito non rileva immediatamente la modifica nell'icona. Copia il pacchetto in un'altra cartella per farlo registrare la nuova icona. – koan

+1

Ho dovuto rimuovere anche l'icona vuota? file nella radice del bundle. – ciastek

4

Se sei arrivato qui perché avete una singola applicazione e desideri modificare l'immagine solo sul computer (non è sicuro come funziona per la condivisione), ci sono modi molto più semplici. In particolare, qui ci sono due opzioni che ho usato:

  1. Se si desidera copiare un'icona esistente:

    • Selezionare la voce sorgente e premere Cmd-I (Apple-I)
    • Selezionare l'elemento che si desidera modificare e premere Cmd-I (Apple-I)
    • Trascinare l'icona dalla sorgente all'icona in alto a sinistra di quella che si desidera modificare (l'immagine di esempio mostra l'icona di destinazione: è la icona 'cartella' a sinistra delle parole "bird_id 2"): enter image description here
  2. Creare un file .icns da qualsiasi immagine. Se usi MacPorts, ti consiglio invece di usare i make port - vedi sotto per maggiori informazioni. In alternativa, puoi farlo utilizzando un'app come http://www.img2icnsapp.com/ come raccomandato allo https://discussions.apple.com/thread/2773825.

 
makeicns v1.4.10 (284bd686824f) 

Usage: makeicns [k1=v1] [k2=v2] ... 

Keys and values include: 
    512: Name of input image for 512x512 variant of icon 
    256: Name of input image for 256x256 variant of icon 
    128: Name of input image for 128x128 variant of icon 
    32: Name of input image for 32x32 variant of icon 
    16: Name of input image for 16x16 variant of icon 
    in: Name of input image for all variants not having an explicit name 
    out: Name of output file, defaults to first nonempty input name, 
     but with icns extension 

    align: [center, left, right, top, bottom] {First letter suffices!} 

Examples: 

    makeicns -512 image.png -32 image.png 
     Creates image.icns with only a 512x512 and a 32x32 variant. 

    makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns 
     Creates outfile.icns with sizes 512, 256, 128, and 16 containing data 
     from myfile.jpg and with size 32 containing data from otherfile.png. 
+0

Brillante, questo è proprio quello di cui avevo bisogno (e ora ho un launcher GUI Emacs personalizzato che eredita anche tutte le mie impostazioni .bashrc, quindi posso trovare prontamente gli alias e altri script da una shell di emacs o eshell). – Ben

3

ho fatto un piccolo script che prende una grande immagine e ridimensiona a tutte le dimensioni delle icone che ci si attende per Mac OS, tra cui il doppio quelli per i display retina. Prende il file png originale, che mi aspetto sia grande quanto la dimensione massima, se non più grande, per assicurarmi che siano resi alla massima qualità.

Ridimensiona e li copia su un set di icone e utilizza lo strumento "iconutil" del Mac OS per unirli a un file .icns.

Per eseguire questo script, è necessario che il file dell'icona originale sia png e che il pacchetto sia più o meno funzionante. Hai solo bisogno di toccare le prime tre linee.

export PROJECT=Myproject 
export ICONDIR=$PROJECT.app/Contents/Resources/$PROJECT.iconset 
export ORIGICON=Mybigfile.png 

mkdir $ICONDIR 

# Normal screen icons 
for SIZE in 16 32 64 128 256 512; do 
sips -z $SIZE $SIZE $ORIGICON --out $ICONDIR/icon_${SIZE}x${SIZE}.png ; 
done 

# Retina display icons 
for SIZE in 32 64 256 512; do 
sips -z $SIZE $SIZE $ORIGICON --out $ICONDIR/icon_$(expr $SIZE/2)x$(expr $SIZE/2)x2.png ; 
done 

# Make a multi-resolution Icon 
iconutil -c icns -o $PROJECT.app/Contents/Resources/$PROJECT.icns $ICONDIR 
rm -rf $ICONDIR #it is useless now 
Problemi correlati