2009-03-14 16 views

Odpowiedz

23

w swojej info.plist dodać

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

z pliku ikony iconfile.icns w katalogu Resources

+0

Działa idealnie. Dzięki. –

+3

Odpowiedź jest poprawna, ale Finder zwykle nie odbiera zmiany w ikonie natychmiast. Skopiuj pakiet do innego folderu, aby go zarejestrować nową ikonę. – koan

+1

Musiałem dodatkowo usunąć pustą ikonę? plik w katalogu głównym pakietu. – ciastek

4

Jeśli przyszedł tu, bo masz jedną aplikację i chcą zmienić obraz tylko na komputerze (nie jestem pewien jak to działa w celu dzielenia się), istnieje wiele łatwiejszych sposobów. W szczególności, są tu dwie opcje mam używany:

  1. Jeśli chcesz skopiować istniejący ikony:

    • Wybierz element źródłowy i naciśnij Cmd-I (Apple-I)
    • Wybierz element, który chcesz zmienić, i naciśnij Cmd-I (Apple-I)
    • Przeciągnij ikonę ze źródła do lewej górnej ikony ikony, którą chcesz zmienić (przykładowy obrazek pokazuje ikonę celu: jest to ikona "folderu" po lewej stronie słów "bird_id 2"): enter image description here
  2. Utwórz plik .icns z dowolnego obrazu. Jeśli używasz MacPorts, zalecam używanie makeiconów portowych - więcej informacji znajdziesz poniżej. Alternatywnie można to zrobić za pomocą aplikacji, takiej jak http://www.img2icnsapp.com/, zgodnie z zaleceniami pod adresem 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

Świetne, właśnie tego potrzebowałem (i mam teraz niestandardowy program uruchamiający GUI Emacsa, który dziedziczy wszystkie moje ustawienia .bashrc, więc mogę łatwo znaleźć aliasy i inne skrypty z powłoki lub skorupy emacsa). – Ben

3

zrobiłem mały skrypt, który ma duży obraz i zmienia rozmiar go do wszystkich przewidywanych rozmiarach ikona Mac OS, w tym tych, dla podwójnych wyświetlaczy Retina. Zajmuje oryginalny plik PNG, który, moim zdaniem, będzie tak duży, jak maksymalny rozmiar, jeśli nie większy, aby upewnić się, że są renderowane z maksymalną jakością.

Zmienia rozmiar i kopiuje je do zestawu ikon i używa narzędzia "ikonutil" systemu Mac OS do dołączenia ich do pliku .icns.

Aby ten skrypt działał, potrzebny jest oryginalny plik ikony, który ma być png, a jego pakiet jest mniej więcej sprawny. Wystarczy dotknąć pierwszych trzech linii.

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 
Powiązane problemy