Generate every app icon size from one image

Drop in a 1024 × 1024 image and this app icon generator produces every size iOS and Android ask for, in the folder structure each platform expects, with Contents.json included. Everything is produced in your browser — the image is never uploaded.

No upload No file size limit No sign-up Free

Drop a 1024 × 1024 image here

or click to choose — square, no transparency for iOS

The two rules that get apps rejected

Generating the sizes is the easy part. The two things that actually cost people a submission are both invisible until the upload fails.

iOS icons cannot contain transparency. App Store validation rejects any icon with an alpha channel, and the error arrives after you have built, archived and uploaded — not while you are designing. A logo exported as a PNG with a transparent background will sail through every other step and then stop you at the last one. This tool detects transparency in your source, tells you, and flattens the iOS icons onto a background colour you choose.

Do not round the corners yourself. iOS applies its own rounded-rectangle mask to whatever you supply. Round your artwork first and the mask is applied on top of your rounding, producing an icon with thin pale corners that looks subtly wrong next to everything else on the home screen. Supply a full square.

What each platform needs

PlatformGoes whereNotes
iOS Assets.xcassets/AppIcon.appiconset Includes Contents.json; no alpha; square corners
Android app/src/main/res/mipmap-* Five densities, mdpi through xxxhdpi
Play Store Play Console listing 512 × 512, uploaded separately from the app

Full set or a single 1024?

Xcode 14 and later accept a single 1024 × 1024 icon and generate every other size at build time. If you are on a current toolchain, that is one file instead of eighteen and there is no downside.

The full set still matters in three cases: projects on an older Xcode, teams pinned to a specific toolchain in CI, and anyone who wants control over how the small sizes are downscaled rather than accepting Xcode's result. Downscaling a detailed icon to 40 pixels is exactly the kind of operation where the algorithm shows, so if your mark has fine elements it is worth generating the sizes deliberately and looking at them.

Android's adaptive icon crop

Android launchers do not display your icon as supplied. An adaptive icon is 108 × 108 density-independent pixels, but the launcher masks it to whatever shape the device uses — a circle, a squircle, a rounded square, a teardrop on some manufacturers' skins. Only the central 72 × 72 is guaranteed to survive.

In practice that means the outer third of your icon can vanish. A logo that fills the square edge to edge will have its corners eaten; text near the edge will be cut mid-letter. Switch on the safe-zone overlay in the preview to see the boundary, and keep anything that matters inside it.

This is the opposite instinct from iOS, where filling the square is correct because the mask is a predictable rounded rectangle. If you are shipping both, the safest single design is one that reads well inside a circle and still looks deliberate as a square.

Start at 1024

Every size here is produced by scaling down, so the source sets the ceiling. Supply 1024 × 1024 and everything below it is a clean reduction. Supply 512 and the App Store icon has to be enlarged — which is the single place reviewers and customers see it largest, and the one place softness is obvious.

If your artwork is vector, export it at 1024 rather than scaling up a smaller PNG. If it is not square, the fit options let you pad it with your background colour or crop to the centre, but a purpose-made square nearly always looks better than either.

Installing the result

The ZIP mirrors the folder structure each platform expects. AppIcon.appiconset is a complete asset catalogue entry — drag it into Assets.xcassets and replace the existing one. The android folder contains mipmap-* directories that map directly onto app/src/main/res; copy them in and the launcher icon is updated. A README repeats all of this next to the files.

All of it is generated in your browser. The image is never uploaded, there is no account, and the ZIP is assembled on your own device.

Frequently asked questions

Why does my app icon get rejected for having an alpha channel?

Apple does not allow transparency in App Store icons - an icon with an alpha channel fails validation on upload. This tool detects transparency in your source and flattens it onto the background colour you choose for the iOS set, so what you get is always safe to submit. Android has no such restriction.

Should I round the corners myself?

No. iOS applies its own rounded-rectangle mask, and rounding your source first produces a double-rounded icon with pale corners. Supply a full square and let the platform mask it. Android is the opposite case - adaptive icons crop your artwork to whatever shape the launcher uses, so keep important detail away from the edges.

Does modern Xcode still need every size?

Not strictly. Xcode 14 and later accept a single 1024 by 1024 icon and generate the rest at build time. The full set still matters for older projects, for teams pinned to an older toolchain, and for anyone who wants the exact downscaled result rather than Xcode's. Both options are offered.

What is the safe zone in an Android adaptive icon?

An adaptive icon is 108 by 108 density-independent pixels but launchers may mask it to a circle, squircle or rounded square, and only the central 72 by 72 is guaranteed visible. Anything outside that circle can be cut off, so logos should sit comfortably inside the middle two-thirds.

How large should the source image be?

1024 by 1024 pixels, square, with no transparency if you are targeting iOS. Every other size is produced by scaling down, so anything smaller than 1024 means the App Store icon has to be enlarged, which looks soft exactly where reviewers see it first.

Where do the files go in my project?

The iOS folder is a complete AppIcon.appiconset - drop it into Assets.xcassets, replacing the existing one. The Android folders match the res directory: copy each mipmap-* folder into app/src/main/res. The included README repeats this next to the files.