1

Итак, у меня есть приложение, для которого я хочу изменить значок. Если я перетаскиваю новый значок в Contents/Resources/ через графический интерфейс, приложение обновляется нормально.

Однако, если я cp значок в терминале, значок не обновляется, и оригинальный значок все еще отображается, или отображается слегка поврежденная версия оригинала.

Что еще мне нужно сделать, чтобы позволить .icns обновляться через терминал (мне нужно иметь возможность написать скрипт для проекта.)

Большое спасибо.

2 ответа2

1

Возможно, немного поздно, но взгляните на эту статью.

Сет Варго объясняет, как он создал папку со своими пользовательскими значками в ~/.custom-icons и небольшим сценарием, который он запускает каждый раз, когда обновление приложения сбрасывает его значок.

function replace_icons() {
  cp ~/.custom-icons/atom.icns /Applications/Atom.app/Contents/Resources/atom.icns
  touch /Applications/Atom.app
  sudo killall Finder && sudo killall Finder
}
0

Я бы проверил две вещи:

  1. Убедитесь, что filename.icns - это точное имя файла, на которое есть ссылки в Contents/_CodeSignature/CodeResources and Contents/PkgInfo

  2. Убедитесь, что разрешения для filename.icns правильные. Если вы запустите ls -l из Contents/Resources/ , вы должны увидеть, что filename.icns имеет root владельца и wheel группы, а права доступа указаны как -rw-r--r-- . Если вы этого не видите, вам нужно выполнить следующие команды:

    sudo chown root:wheel filename.icns

    sudo chmod 644 filename.icns

Если вы хотите немного больше информации о разрешениях, проверьте следующие ссылки:

http://www.macinstruct.com/node/415 (полезное руководство по разрешениям и собственности)

https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/chown.8.html (руководство пользователя chown)

https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/chmod.1.html (руководство по chmod)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .