Shipping an app means shipping icons. A lot of them. Xcode wants an asset catalog with a Contents.json pointing at a dozen PNGs, Android wants mipmap densities plus adaptive-icon XML, your PWA wants maskable icons in the manifest, the Chrome Web Store wants its own sizes, Windows wants a genuine multi-resolution .ico — and every one of them has a rule that will quietly bite you.
The usual options: click through an online generator that uploads your artwork and spits out a partial set, or write a script you'll maintain forever.
Here's the shortcut: ToolsMonk's App Icon Generator takes one 1024×1024 PNG (or design one in-place from a letter, emoji, or an AI prompt) and produces the complete icon set as a single ZIP — entirely in your browser. Your artwork never leaves your machine.
The rules it handles so you don't have to remember them
Apple's 1024 icon must have no alpha channel. The App Store rejects transparency on the marketing icon. The export flattens the 1024 PNG for you.
Android adaptive icons live on a 108dp canvas with a 66dp safe zone. You get foreground, background, and the Android 13 themed monochrome layer, plus a live launcher-mask preview (circle / squircle / rounded) with a safe-zone overlay that shows how much of your logo each mask would crop.
Maskable PWA icons are generated alongside a web manifest, so purpose: "maskable" actually works instead of your logo getting cropped to a tiny circle on Android.
Windows gets a real multi-resolution .ico — not a renamed PNG. And for macOS, since browsers can't emit .icns directly, you get an AppIcon.iconset folder ready for iconutil -c icns (one command, documented in the included README).
What's in the ZIP
| Target | What you get |
|---|---|
| iOS / iPadOS | Every size + Contents.json (Xcode asset catalog) |
| macOS |
AppIcon.iconset (run iconutil -c icns) |
| watchOS | Full size set + catalog |
| Android |
mipmap-* densities, mipmap-anydpi-v26 adaptive XML, Play Store 512 |
| Windows | Multi-resolution .ico
|
| PWA / Web | Favicons, maskable icons, web manifest snippet |
| Extensions | Browser extension icon sizes |
PNG by default (deliberately — it's lossless everywhere), WebP optional for web and extension icons. Also included: an HTML <head> snippet so favicon wiring is copy-paste.
Three ways to get a source icon
- Upload your own 1024×1024 artwork (the ideal input — smaller images get upscaled, and the tool warns you)
- Design in-place from a letter, emoji, or symbol — padding, rotation, auto-trim, solid/gradient/auto-sampled backgrounds, even a build-flavour ribbon (BETA/DEV) for internal builds
- AI prompt — that one tab sends your text prompt (not your artwork) to an AI provider; everything else stays local
Getting it into the build
Unzip, drop the ios/ folder contents into Assets.xcassets, point android/app/src/main/res at the mipmap folders, paste the head snippet into your index.html. Done.
Handy companions: icon design best practices for web (SVG) and the complete favicon generator guide for 2026.
Where to get it
- Web (no install): toolsmonk.com/tool/appicon
- Windows: Microsoft Store
- Android: Google Play
Free, no signup, no watermark. If a platform you target is missing from the export set, tell us in the comments or the site feedback — it's a one-line addition most of the time.

Top comments (0)