2011-01-26 7 views
5

Как установить значок для пакета, который не является приложением? Я пытался использовать CFBundleIconFile, но он не работает (хотя, если я просто изменил расширение пакета на .app, значок будет изменен на желаемый). Есть ли другой ключ или единственный способ установить значок для каталога? Если это так, есть ли какой-нибудь скрипт для этого из командной строки (сценарий запуска Xcode)?Значок набора для un app mac os x bundle

ответ

2

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

Если вам нужно сделать это с CLI ... Это немного сложнее ...

Во-первых, вам нужно добавить CFBundleIconFile строку вашего комплекта-х

YourThing.bundle/Contents/Info.plist 

Здесь, где разработчик получает , укажите пользовательский значок для комплекта. Этот ключ содержит имя файла в папке ресурсов пакета, в которой находятся значки . TextEdit сохраняет свой значок в файле Edit.icns, , но нет правила о том, что должно быть имя файла .

Тем не менее, вам необходимо либо файл ICNS, или может follow these instructions из этого Utility (which includes its source code), который генерирует ICNS-х из файлов изображений с помощью командной строки ..

$ ./makeicns 

Использование: makeicns [k1 = v1 ] [к2 = v2] ...

Ключи и значения включают в себя: 512: Имя входного изображения для 512x512 варианта значка 256: Имя входного изображения для 256x256 варианта значка 128: Название входного изображения для варианта 128x128 значка 32: Имя входного изображения для варианта 32x32 значка 16: Имя входного изображения для варианта 16x16 значка в: Имя входного изображения для всех вариантов, не имеющих явного имя аут: Имя выходного файла, по умолчанию имя первого непустого ввода, но с расширением ICNS

Примеры:

makeicns -512 image.png -32 image.png 

Создает image.icns с только 512x512 и вариант 32x32.

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

Создает outfile.icns с размерами 512, 256 , 128 и 16, содержащих данные из myfile.jpg и с размером 32, содержащий данные из otherfile.png.

+0

мне это нужно, чтобы запустить из командной строки – tig

1

Answer from similar (duplicate) question:

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

Почему это downvoted? Это не работает? @tig – Noitidart

+0

Это решение сработало для меня, однако оно не изменило файл внутри '/ Contents/Resources/appicon.icns' в моем приложении. Даже если я перезапущу, он использует новый значок, на который я его установил, но мое старое изображение остается в папке «Ресурсы», заставляя меня думать, что некоторые сложные вещи идут по другому, а затем простому обновлению. Можете ли вы поделиться своими мыслями по этому поводу @yairchu – Noitidart

+1

@Noitidart: Я нашел его в дублированном вопросе (связанном), как я уже упоминал. «Fruity Geek» дал ответ там и ссылки на ссылку Apple, у меня нет никаких дополнительных подробностей. – yairchu

Смежные вопросы