Как установить значок для пакета приложения Mac OS X моего приложения? - PullRequest
19 голосов
/ 14 марта 2009

У меня есть приложение, которое я включил в комплект приложений Mac OS X. Все работает нормально, но я хочу изменить его значок по умолчанию. Как мне установить его иконку? Спасибо.

Ответы [ 3 ]

27 голосов
/ 14 марта 2009

в вашем info.plist добавьте

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

с иконкой iconfile.icns в вашем каталоге ресурсов

4 голосов
/ 06 июня 2014

Если вы пришли сюда из-за того, что у вас есть одно приложение и вы хотите изменить изображение только на своем компьютере (не знаете, как оно работает для совместного использования), есть гораздо более простые способы. В частности, вот два варианта, которые я использовал:

  1. Если вы хотите скопировать существующий значок:

    • Выберите исходный элемент и нажмите Cmd-I (Apple-I)
    • Выберите элемент, который вы хотите изменить, и нажмите Cmd-I (Apple-I)
    • Перетащите значок с источника на верхний левый значок того, который вы хотите изменить (на изображении примера показан целевой значок: это значок «папки» слева от слов «bird_id 2»): enter image description here
  2. Создать файл .icns из любого изображения. Если вы используете MacPorts, я рекомендую вместо этого использовать порт makeicns - дополнительную информацию смотрите ниже. В качестве альтернативы вы можете сделать это с помощью приложения, такого как http://www.img2icnsapp.com/, как рекомендовано на 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.
3 голосов
/ 07 августа 2015

Я создал небольшой скрипт, который берет большое изображение и изменяет его размеры до всех ожидаемых размеров значков для Mac OS, включая двойные для дисплеев Retina. Требуется оригинальный файл png, который, как я ожидаю, будет иметь максимальный размер, если не больше, чтобы убедиться, что он отображается с максимальным качеством.

Он изменяет размеры и копирует их в набор значков и использует инструмент Macu 'iconutil', чтобы объединить их в файл .icns.

Для запуска этого сценария требуется, чтобы исходный файл значков был png, а пакет находился в более или менее рабочем состоянии. Вам нужно только прикоснуться к первым трем строкам.

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...