#!/usr/bin/env bash ICON="assets/app-icon.png" # Android icons for d in mdpi:48 hdpi:72 xhdpi:96 xxhdpi:144 xxxhdpi:192; do density="${d%%:*}" size="${d##*:}" out_dir="android/app/src/main/res/mipmap-${density}" round_icon="${out_dir}/ic_launcher_round.png" sips -z "$size" "$size" "$ICON" \ --out "${out_dir}/ic_launcher.png" >/dev/null sips -z "$size" "$size" "$ICON" \ --out "$round_icon" >/dev/null # Proper circular crop with preserved transparency (ImageMagick) if command -v magick >/dev/null 2>&1; then magick "$round_icon" \ -alpha set -background none \ \( -size ${size}x${size} xc:none \ -fill white -draw "circle $((size/2)),$((size/2)) $((size/2)),1" \) \ -compose CopyOpacity -composite \ "$round_icon" else echo "Warning: ImageMagick not found; skipping circular crop for $round_icon" >&2 fi done # iOS icons OUT="ios/Expensso/Images.xcassets/AppIcon.appiconset" sips -z 40 40 "$ICON" --out "$OUT/Icon-20@2x.png" >/dev/null sips -z 60 60 "$ICON" --out "$OUT/Icon-20@3x.png" >/dev/null sips -z 58 58 "$ICON" --out "$OUT/Icon-29@2x.png" >/dev/null sips -z 87 87 "$ICON" --out "$OUT/Icon-29@3x.png" >/dev/null sips -z 80 80 "$ICON" --out "$OUT/Icon-40@2x.png" >/dev/null sips -z 120 120 "$ICON" --out "$OUT/Icon-40@3x.png" >/dev/null sips -z 120 120 "$ICON" --out "$OUT/Icon-60@2x.png" >/dev/null sips -z 180 180 "$ICON" --out "$OUT/Icon-60@3x.png" >/dev/null sips -z 1024 1024 "$ICON" --out "$OUT/Icon-1024.png" >/dev/null echo "Icons generated!"