2011-01-26 11 views
5

Come impostare l'icona per il pacchetto che non è un'app? Ho provato a utilizzare CFBundleIconFile, ma non funziona (anche se cambio l'estensione del bundle su .app, l'icona viene modificata in quella desiderata). C'è un'altra chiave, o l'unico modo è quello di impostare l'icona per la directory? Se è così, c'è già qualche script per farlo dalla riga di comando (script di esecuzione Xcode)?Imposta l'icona di non app mac os x bundle

risposta

2

Visual documentation of the process of copying and pasting an icon in the Finder

Se avete bisogno di farlo da CLI ... E 'un po' più complesso ...

In primo luogo, è necessario aggiungere una stringa CFBundleIconFile per il vostro pacco

YourThing.bundle/Contents/Info.plist 

Ecco dove lo sviluppatore arriva a specificare un'icona personalizzata per il pacchetto. Questa chiave contiene il nome di un file nella cartella Risorse del pacchetto che contiene le icone. TextEdit mantiene l'icona in un file denominato file Edit.icns, ma non esiste una regola su cosa deve essere il nome del file .

Detto questo, vi sia bisogno di un file ICNS, o può follow these instructions da questo Utility (which includes its source code) che genera ICNS S da file di immagini tramite la riga di comando ..

$ ./makeicns 

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

Chiavi e valori includono: 512: Nome dell'immagine in ingresso per 512x512 variante di icona 256: Nome dell'immagine in ingresso per 256x256 variante di icona 012.351.641,061 mila128: Nome dell'immagine di input per la variante 128x128 dell'icona 32: Nome dell'immagine di input per la variante 32x32 dell'icona 16: Nome dell'immagine di input per la variante 16x16 dell'icona in: Nome dell'immagine di input per tutte le varianti che non hanno un esplicito nome out: nome del file di output, è impostato al nome di ingresso prima non vuota, ma con estensione icns

Esempi:

makeicns -512 image.png -32 image.png 

Crea image.icns con solo un 512x512 e una variante 32x32.

makeicns -in myfile.jpg -32 otherfile.png -out outfile.icns 

Crea outfile.icns con dimensioni 512, 256, 128, e 16 contenenti dati da myfile.jpg e con dimensione 32 contenente dati otherfile.png.

+0

ho bisogno di questo per eseguire da linea di comando – tig

1

Answer from similar (duplicate) question:

[[NSWorkspace sharedWorkspace] 
    setIcon:(NSImage *)image 
    forFile:(NSString *)bundlePath 
    options:0]; 
+0

Perché questo è stato downvoted? Non funziona? @ tig – Noitidart

+0

Questa soluzione ha funzionato per me, tuttavia non ha modificato il file in '/ Contents/Resources/appicon.icns' nel mio pacchetto di app. Anche se ricomincio, usa la nuova icona in cui l'ho impostata, ma la mia vecchia immagine rimane nella cartella Risorse, facendomi pensare che qualcosa di complicato stia succedendo da un altro, poi un semplice aggiornamento. Potete per favore condividere le vostre opinioni su questo @yairchu – Noitidart

+1

@Noitidart: l'ho trovato nella domanda duplicata (collegata) come ho detto. "Fruity Geek" ha dato la risposta laggiù e link al riferimento di Apple, non ho ulteriori dettagli .. – yairchu