Установить значок для файла DMG не работает с ICNS и PNG
Я создаю файл dmg и получаю следующую ошибку при использовании файлов icns и png..
Вот команда:
DeRez -only icns resources/test.icns > icns.rsrc
Ошибка:
/Applications/Xcode.app/Contents/Developer/usr/bin/DeRez - SysError -39 при открытии файла ресурсов "resources/test.icns"
Версия для Mac OS: MacOS Mojave 10.14.2
Пожалуйста, предложите.
1 ответ
Я только что столкнулся с этим и заметил, что этот вопрос остался без ответа, хотя он довольно прост.
Видимо ошибка -39 означает
end of file
, Я предполагаю, что это означает, что он не смог найти действительную часть ожидаемых данных. Я предполагаю, что вы (как и я) использовали
sips -i someicon.icns
установить себе иконку файла? Вы должны были получить ошибку
--addIcon is no longer supported
что для меня означает, что на самом деле он не установил значок. Так что последующий
DeRez
вызов, чтобы выйти из него, не удастся.
Я не хотел устанавливать какие-либо дополнительные вещи, но, к счастью, я нашел здесь еще один ответ, который, похоже, использует только стандартные инструменты Xcode и / или macOS. В моем случае я пытался установить значок, экспортированный из AppleScript, но фактическая часть преобразования должна быть одинаковой.
Итак, все шаги, которые нужно предпринять
.png
к фактическому значку для
.app
файл:
cd /some/application/dir/some.app/Contents/Resources
cp /some/assets/dir/myicon.png ./
# Convert png to icns
# Keep in mind that sips can allegedly only handle 256x256, 512x512 and 1024x1024 PNGs for this
# Otherwise you need to do something like the following first:
# sips -z 256 256 myicon.png --out myicon_resized.png
# Then check if it came out good and run:
# mv -f myicon_resized.png myicon.png
# Now let's actually convert it and remove the png as it's no longer needed
sips -s format icns myicon.png --out myicon.icns
rm -fv myicon.png
# Apparently you can also specify commands of some sort in .rsrc files (this is the part I was needed from the other SO answer)
# This is used in place of DeRez
echo "read 'icns' (-16455) \"myicon.icns\";" > myicon.rsrc
# Now just use Rez to append it to the special icon file in the root of the .app dir
Rez -append myicon.rsrc -o $'../../Icon\r'
# Write the metadata indicating we want to use the Icon\r file for the app's icon
# I could just use ../../ for the path but I like to be explicit
SetFile -a C ../../../some.app
# Also hide said file from Finder views
SetFile -a V $'../../Icon\r'
Я не пробовал устанавливать собственные значки для
.dmg
файл, но я думаю, вы уже знаете, как "применить"
.rsrc
в любом случае. знак равно