How to ios vs android app icon requirements: complete comparison
- Step 1Author one square SVG — Both platforms can start from the same square SVG. Keep the key shape inside a generous safe area so launcher masks (Android) and the iOS squircle do not clip it. Avoid hairlines and small text — they die at 20–48px.
- Step 2Generate the shared raster set — Run the App Icon Generator. With no options to configure, it outputs the full iOS catalog and the Android mipmaps in one ZIP, rasterised from your SVG via Canvas.
- Step 3Handle the iOS transparency rule — Inspect
icon_1024x1024.png. If your SVG is transparent, so is this PNG — and App Store Connect will reject it. Add a solid background<rect>to the SVG before generating, or flatten the 1024 PNG. The generator does not flatten alpha for you. - Step 4Decide on Android adaptive vs legacy — The generated
ic_launcher.pngfiles are legacy square icons that every launcher can show. If you want adaptive masking/animation, author a foreground and background layer plusmipmap-anydpi-v26/ic_launcher.xmlmanually — the tool does not produce these. - Step 5Leave corners square — Do not pre-round. iOS applies its superellipse mask and Android applies the launcher shape at display time. Square icons in, system-masked icons on screen.
- Step 6Run the submission checklist — iOS: exactly 1024×1024, no alpha, no pre-rounding, no upscaling blur. Android: 512px Play icon present, mipmaps in every density, foreground art inside the safe zone if adaptive. The first three iOS items are exactly where SVG-sourced icons help most.
iOS vs Android icon systems, side by side
Platform requirements compared, with the JAD generator's coverage noted in the final column.
| Aspect | iOS | Android | Generator coverage |
|---|---|---|---|
| File layout | AppIcon.appiconset with PNGs + Contents.json in Assets.xcassets | mipmap-<density>/ic_launcher.png under res/ | Both produced (13 iOS PNGs + Contents.json; 5 mipmaps) |
| Required sizes (px) | 20, 29, 40, 58, 60, 76, 80, 87, 120, 152, 167, 180, 1024 | 48, 72, 96, 144, 192 (mipmaps) + 512 Play Store | All emitted exactly as listed |
| Corner shape | System superellipse (squircle) at display time | Launcher-applied mask (circle/squircle/teardrop) | Square icons emitted; no pre-rounding (correct) |
| Transparency | Allowed on home-screen sizes; forbidden on the 1024 marketing icon | Allowed (foreground layer is typically transparent) | Preserved everywhere — you must flatten the 1024 yourself |
| Adaptive / layered | n/a (single flat icon; iOS 18 tinted variants optional) | Adaptive icon = foreground + background layers (API 26+) | Not generated — legacy square ic_launcher.png only |
| Store listing icon | 1024×1024 in the asset catalog (marketing idiom) | 512×512 high-res icon in Play Console | Both produced (1024 in catalog; 512 play-store-icon.png) |
Transparency and corner rules at a glance
The two rules responsible for the most icon rejections, and how to satisfy them when sourcing from SVG.
| Rule | iOS | Android | How to comply with this tool |
|---|---|---|---|
| Alpha in store icon | Rejected (1024 must be opaque) | Allowed | Add a solid <rect> background to the SVG, or flatten the 1024 PNG after export |
| Pre-rounded corners | Causes double-mask artifact | Causes clipping under launcher mask | Leave square — the tool already emits square icons |
| Safe area / centring | Keep art clear of the squircle edge | Keep art inside the inner ~66% for adaptive masks | Pad the SVG (e.g. svg-viewbox-fixer) so art is centred with margin |
Cookbook
Concrete comparisons that show how the same SVG meets two different rulebooks.
Same SVG, two folder structures
One run yields the asset-catalog layout iOS wants and the density-bucket layout Android wants.
brand.svg → brand-app-icons.zip
iOS : ios/AppIcon.appiconset/icon_<S>x<S>.png + Contents.json
Droid: android/mipmap-<density>/ic_launcher.png
+ android/play-store-icon.png (512)
Same artwork, two conventions, no manual renaming.The 1024 alpha rejection, prevented
App Store Connect rejects an opaque-required 1024 that has transparency. Fix it in the SVG before export.
Transparent SVG → icon_1024x1024.png has alpha → REJECTED Fix in source: <svg viewBox="0 0 512 512"> <rect width="512" height="512" fill="#0B0B0F"/> <!-- opaque bg --> <!-- icon art --> </svg> → regenerate → icon_1024x1024.png is opaque → accepted
Why you don't pre-round either platform
Both systems mask corners at display time. Pre-rounding fights the mask.
You round corners in the SVG iOS: squircle mask applied on top → uneven double curve Android: launcher circle mask → your rounded square clips Correct: ship a full-bleed square icon iOS applies superellipse, Android applies launcher shape
Adaptive icon: what the tool leaves to you
The generator's Android output is legacy square. Adaptive icons need extra hand-authored files.
Generator gives: mipmap-*/ic_launcher.png (square, works everywhere)
Adaptive needs (author manually):
mipmap-anydpi-v26/ic_launcher.xml
<adaptive-icon>
<background android:drawable="@color/ic_bg"/>
<foreground android:drawable="@drawable/ic_fg"/>
</adaptive-icon>
+ a foreground PNG/vector with art inside the safe zoneWeb icons are out of scope here
Neither iOS nor Android launcher requirements cover the browser. Use the favicon tool for that surface.
Launcher icons → svg-app-icon-gen (this tool) Browser/PWA favicons → svg-favicon-master (/svg-tools/svg-favicon-master) → favicon.ico (16/32/48) + web PNGs + <link> tags
Edge cases and what actually happens
Transparent 1024 marketing icon
App Store rejectApp Store Connect rejects a 1024×1024 marketing icon that contains alpha. The generator preserves SVG transparency in all sizes, so a transparent source yields a transparent 1024. Add a solid background to the SVG or flatten the 1024 PNG before submitting.
Developer pre-rounded the corners
Reject / artifactiOS reviewers flag pre-rounded icons, and Android launchers clip them under the system mask. Always ship square; both platforms round at display time. The generator already outputs square icons — do not round in the SVG.
Expecting one PNG to be an adaptive icon
Not supportedA single ic_launcher.png is a legacy icon, not adaptive. Modern launchers will still show it, but you lose adaptive masking/animation. Build the foreground/background layers and ic_launcher.xml yourself — the generator does not.
Art too close to the edge for the Android mask
ClippingAndroid's adaptive mask can crop the outer ring of the canvas. If your foreground art reaches the edge it may be clipped to a circle. Centre the art with margin; pad the SVG with svg-viewbox-fixer before generating.
iOS catalog warns about missing scales
ReviewThe generated Contents.json declares each size at scale: 1x with explicit pixel filenames rather than @2x/@3x slots. Most Xcode versions accept this, but verify the catalog resolves without yellow warnings; if your Xcode expects scale-grouped entries, the single-resolution PNGs are still present and can be re-slotted.
Upscaled raster source looks blurry
By design (avoided)Blurry icons usually come from upscaling a small PNG master. Sourcing from SVG sidesteps this — every size is rasterised crisply from vectors. This is the single biggest quality win of the SVG workflow on both platforms.
Tinted dark-mode icon variant
Not generatediOS 18 can request a tinted icon variant and Android supports themed icons; both are optional and neither is produced here. Supply those assets through your IDE separately if you want them.
Wrong store-icon size uploaded
RejectiOS wants 1024×1024 (in the catalog as the marketing idiom); Play wants 512×512 (play-store-icon.png). Swapping them fails validation. Both are in the ZIP at the correct sizes — upload each to the right store field.
Frequently asked questions
What sizes does iOS require versus Android?
iOS: 20, 29, 40, 58, 60, 76, 80, 87, 120, 152, 167, 180 and 1024px. Android mipmaps: 48 (mdpi), 72 (hdpi), 96 (xhdpi), 144 (xxhdpi), 192 (xxxhdpi), plus a 512px Play Store icon. The generator emits all of these in one ZIP.
Can iOS app icons have transparency?
Home-screen sizes can technically carry alpha, but the 1024×1024 App Store marketing icon must be fully opaque or it is rejected. The generator preserves transparency, so flatten the 1024 (or add a background to the SVG) before submitting.
Can Android icons have transparency?
Yes. For adaptive icons the foreground layer is normally transparent outside the artwork and the background layer fills the canvas. The legacy ic_launcher.png the generator produces also keeps your SVG's transparency.
Who applies the rounded corners?
The system, at display time — iOS uses a superellipse (squircle) mask; Android launchers apply their own shape. Supply square icons; never pre-round. The generator outputs square icons, which is correct.
Does the tool create Android adaptive icons?
No. It outputs legacy square ic_launcher.png per density. Adaptive icons require separate foreground/background layers and an ic_launcher.xml, which you author manually.
What is the Android adaptive icon safe zone?
On a 108×108dp adaptive canvas, only the inner ~72dp circle is guaranteed visible — roughly the central two-thirds. Keep key art inside it. Since the generator does not build adaptive layers, you control this when you author those layers, but padding the SVG up front helps.
Why was my iOS icon rejected?
The common causes are: transparency in the 1024 icon, wrong dimensions, pre-rounded corners, and upscaling blur. Sourcing from SVG eliminates blur and pre-rounding concerns; you still have to flatten the 1024's alpha because the generator preserves it.
Do I need different artwork per platform?
Usually not — one well-designed square SVG works for both. iOS is stricter about the opaque 1024 and Android benefits from extra foreground padding for adaptive masks, but the core mark is shared. The generator runs the same SVG into both layouts.
Does the generated Contents.json use @2x/@3x?
No — each entry is scale: 1x with an explicit pixel filename. Idiom is derived from size (1024 → ios-marketing, ≥76 → ipad, else iphone). Verify the catalog resolves cleanly in your Xcode version.
What about macOS or watchOS in the same project?
Not produced. This tool is iOS + Android launcher icons only. You will need to create macOS/watchOS catalogs separately. For web/browser icons, use svg-favicon-master.
Is the comparison data and processing private?
Yes — generation runs entirely in your browser via Canvas + JSZip; nothing is uploaded. App icon generation requires the Developer plan.
Which sibling tools help me prep the SVG?
Square non-square art with svg-viewbox-fixer; flatten a multi-colour mark to one tone with svg-monochrome-converter; shrink a heavy SVG before generating with svg-pro-minifier.
Privacy first
Every JAD SVG tool runs entirely in your browser using the DOM API and Canvas. Your SVG files never leave your device — verified by zero outbound network requests during processing.