When I\'m validating my app I get this error:
the application bundle does not contain an icon in ICNS format, containing both a
512x512
Here's a function mostly based off Henry's example (could be useful in ~/.bash_profile
):
mkicns() {
if [[ -z "$*" ]] || [[ "${*##*.}" != "png" ]]; then
echo "Input file invalid"
else
filename="${1%.*}"
mkdir "$filename".iconset
for i in 16 32 128 256 ; do
n=$(( i * 2 ))
sips -z $i $i "$1" --out "$filename".iconset/icon_${i}x${i}.png
sips -z $n $n "$1" --out "$filename".iconset/icon_${i}x${i}@2x.png
[[ $n -eq 512 ]] && \
sips -z $n $n "$1" --out "$filename".iconset/icon_${n}x${n}.png
(( i++ ))
done
cp "$1" "$filename".iconset/icon_512x512@2x.png
iconutil -c icns "$filename".iconset
rm -r "$filename".iconset
fi
}
Usage:
$ mkicns "filename.png" # double-quote if spaces exist in filename
Creates 10 sizes from
16x16
to512x512@2x
; accepts input images in.png
format only.