I found this so helpful on StackOverflow, I thought I’d re-post it here for my personal reference. The snippet below is used to take a 1024-by-1024 pixel PNG file named Icon1024.png
, and create smaller resolution copies in an iconset directory, which can be used later when you deploy your app.
mkdir MyIcon.iconset sips -z 16 16 Icon1024.png --out MyIcon.iconset/icon_16x16.png sips -z 32 32 Icon1024.png --out MyIcon.iconset/icon_16x16@2x.png sips -z 32 32 Icon1024.png --out MyIcon.iconset/icon_32x32.png sips -z 64 64 Icon1024.png --out MyIcon.iconset/icon_32x32@2x.png sips -z 128 128 Icon1024.png --out MyIcon.iconset/icon_128x128.png sips -z 256 256 Icon1024.png --out MyIcon.iconset/icon_128x128@2x.png sips -z 256 256 Icon1024.png --out MyIcon.iconset/icon_256x256.png sips -z 512 512 Icon1024.png --out MyIcon.iconset/icon_256x256@2x.png sips -z 512 512 Icon1024.png --out MyIcon.iconset/icon_512x512.png cp Icon1024.png MyIcon.iconset/icon_512x512@2x.png iconutil -c icns MyIcon.iconset rm -R MyIcon.iconset
The next to last line uses the iconutil
utility to convert an iconset
into an icns
file, but it can also work the other way. (See man iconutil
for more information.)