打包 Mac App 时需要用到 .icns 图标,本文记录制作该文件的过程。
以前制作 Windows 系统 App 用到的 .ico 图标文件,是通过 easyicon-convert 转换 png 文件得到。因此第一想到的也是此网站制作,一顿操作后,把获得的 .icns 文件放到项目中打包,发现得到的应用显示系统默认的图标,打包失败。
制作过程
- 准备 png 文件(示例中是 logo.png,分辨率 1024 * 1024)
- 同级目录新建文件夹 icons.iconset
- 终端执行命令:
sips -z 16 16 logo.png --out icons.iconset/icon_16x16.png
sips -z 32 32 logo.png --out icons.iconset/icon_16x16@2x.png
sips -z 32 32 logo.png --out icons.iconset/icon_32x32.png
sips -z 64 64 logo.png --out icons.iconset/icon_32x32@2x.png
sips -z 128 128 logo.png --out icons.iconset/icon_128x128.png
sips -z 256 256 logo.png --out icons.iconset/icon_128x128@2x.png
sips -z 256 256 logo.png --out icons.iconset/icon_256x256.png
sips -z 512 512 logo.png --out icons.iconset/icon_256x256@2x.png
sips -z 512 512 logo.png --out icons.iconset/icon_512x512.png
sips -z 1024 1024 logo.png --out icons.iconset/icon_512x512@2x.png
终端执行命令
iconutil -c icns icons.iconset -o icon.icns
得到的 icon.icns 即为可用的应用图标。
说明
- 通过 man sips 可以查看 sips 命令的介绍和使用说明:图片处理工具,可以得到对应尺寸的图片This tool is used to query or modify raster image files and ColorSync ICC profiles. sips [image-modification-functions] imagefile ... [--out result-file-or-dir]
- 通过 man iconutil 可以查看 iconutil 的介绍和使用说明:将多个图片打包成 .icns 文件iconutil converts between '.iconset' and '.icns' files. iconutil -c {icns | iconset} [-o file] file
- 打开得到的 .icns 文件,可以发现的确是由多张图片 “打包” 而成: