How to Make an App Icon for the App Store: the Short Answer
To make an app icon for the App Store you produce one image: a square PNG at exactly 1024 by 1024 pixels, in the sRGB or P3 color space, fully opaque with no transparency, and with square corners. That single file is the master. Apple's systems apply the rounded-corner mask themselves when they display it on the App Store and on the home screen, so you never round the corners yourself and you never leave a transparent margin around the artwork. If you submit an icon with an alpha channel or with corners you already rounded, the upload or review will flag it, and that is the single most common icon rejection a first-time builder hits.
The old world of exporting a folder of twenty differently sized PNGs is gone for anyone building with Expo. You give Expo one high-resolution source icon in your app config and the build pipeline generates every size iOS and the App Store need from it. Your entire job is to make one great 1024 by 1024 image that reads clearly when it is shrunk to the size of a fingertip, then point your config at it. The rest is mechanical, and it is exactly the kind of mechanical work you can hand to Claude Code.
The Exact Icon Specs Apple Wants
There is one master size that matters and a short list of rules around it. Get these right and the icon passes on the first upload. Get the transparency or the corners wrong and it bounces before a human even reviews the app.
The App Store icon rules that decide pass or reject
| Rule | What it means |
|---|---|
| Size | Exactly 1024 by 1024 pixels, square. This is the master the build derives every other size from. |
| Format | PNG, flattened, with no alpha channel. Transparency is the top cause of rejection. |
| Corners | Square corners in your file. Apple applies the rounded mask - you do not round it yourself. |
| Color space | sRGB or Display P3. Do not ship a CMYK or grayscale profile. |
| Content | No transparency, no text-heavy artwork that turns to mush at small sizes, no borders that mimic the system corner. |
Design for the smallest place the icon will live, not the largest. Your artwork is judged at 1024 pixels on the App Store product page, but it earns the download at roughly 60 pixels on a crowded home screen. A single bold shape, one or two colors, and generous contrast survive that shrink. Fine detail, thin lines, and small words vanish. If you cannot tell what the icon is at the size of a thumbnail, it is too busy, and no amount of resolution in the master file fixes that.
Wiring One Icon File Through Your Expo App Config
In an Expo app the icon lives in app config - app.json or app.config.js - and you set it in one place. The top-level icon field takes the path to your 1024 by 1024 PNG and iOS uses it directly. You do not need an ios.icon override unless you want a different image on iOS specifically. When you run an EAS build, Expo takes that one source file and generates every resolution the binary and the store listing require, so a single correct master propagates everywhere.
- Export your finished artwork as icon.png at 1024 by 1024 pixels, flattened, with no transparency, and drop it in your project's assets folder.
- Set the top-level icon field in app config to the path of that file (for example ./assets/icon.png).
- For Android, set android.adaptiveIcon with a foregroundImage and a backgroundColor (or a background image), because Android renders a two-layer adaptive icon, not the flat iOS one.
- Run an EAS build and let Expo generate every derived size - do not hand-cut a folder of resolutions.
- Check the built app on a real device: the icon should be crisp on the home screen, correctly masked, with no transparent fringe.
Android is the part people forget. iOS shows a single square image with the system corner, but Android uses an adaptive icon: a foreground layer that floats on a background layer, which the launcher can mask into a circle, a squircle, or a rounded square depending on the device. If you only set the iOS icon and skip android.adaptiveIcon, your Android icon falls back to a default or gets awkwardly cropped. Give Android its own foreground image with padding around the artwork so nothing important sits in the corners that a circular mask will clip.
Why Transparency Is the Rejection You Keep Hitting
The alpha channel problem is sneaky because your icon can look perfect and still carry invisible transparency. Design tools export PNGs with an alpha channel by default, so even a fully colored-in icon with no visible see-through areas can ship with transparency baked into the file format. Apple rejects icons with an alpha channel outright, because a transparent icon on the home screen would show the wallpaper through it. The artwork looking solid is not the same as the file being opaque.
The fix is to flatten the image against a solid background before you export, or to export specifically without an alpha channel. If your design has an intentional background color, fill the entire 1024 by 1024 canvas with it so there is no transparent pixel anywhere. Then confirm the exported file has no alpha channel rather than trusting that it looks fine. This is a one-line check you can run on the file itself, and it is worth doing every single time, because catching it before upload saves you a full rejected-build round trip. The same discipline of catching a problem before submission, not after, is what the [App Store submission checklist](/guides/app-store-submission-checklist) is built around.
Making the Icon With Claude Code
The icon file is one of the fastest things to finish with an assistant that can see your project. Open Claude Code's desktop app in your app's folder and hand it the whole job: take your source artwork, produce a flattened 1024 by 1024 PNG with no alpha channel, place it in assets, set the icon field in app config, and add the android.adaptiveIcon foreground and background so Android is covered too. Because it can read your app.config.js and your assets folder, it wires the paths correctly instead of leaving you to guess field names.
Where it earns its keep is the verification. Ask it to confirm the exported icon is exactly 1024 by 1024, has no alpha channel, and has square corners, and to flag any icon reference in your config that points at a missing or wrong-sized file. That is the pre-flight check that turns a would-be rejection into a clean upload. The terminal is there if you want to run the image commands yourself, but the desktop app can do the export, the config edit, and the size-and-alpha check in one pass. Getting the icon right is one small piece of the larger goal of [passing Apple App Review](/blog/how-to-pass-apple-app-review) on the first try, and the icon is a piece you can lock down completely before you ever hit submit.
Members inside App Store Launch Club drop their icon in for a look before they build, and someone who has already eaten an alpha-channel rejection catches it in seconds. Join at applaunchclub.co for $9 a month and get your icon, your screenshots, and your whole listing sanity-checked before the build goes out, not after.
Short, practical drops on app ideas, validating fast, store listings, and passing app review. No spam, unsubscribe anytime.
Frequently asked questions
What size should an App Store app icon be?
Exactly 1024 by 1024 pixels, square, as a single PNG. That one image is the master, and in an Expo app the build generates every smaller size iOS and the store listing need from it. You do not export a folder of different sizes yourself - you make one 1024 by 1024 file and point your app config at it.
Why does the App Store reject my icon for transparency?
Apple does not allow an alpha channel in the app icon, because a transparent icon would show the wallpaper through it on the home screen. Design tools often add an alpha channel to PNG exports by default, so an icon that looks completely solid can still carry invisible transparency in the file. Flatten the image against a solid background and export without an alpha channel, then verify the file itself has no alpha before you upload.
Do I need to round the corners of my app icon myself?
No. Submit an icon with square corners. Apple applies the rounded-corner mask automatically when it displays the icon on the App Store and on the home screen. If you round the corners yourself, you end up with a visible gap or a double-rounded look, and it can be flagged in review. A flat, square, fully opaque 1024 by 1024 image is what you ship.
How do I set the app icon in an Expo app?
Set the top-level icon field in your app config (app.json or app.config.js) to the path of your 1024 by 1024 PNG, and iOS uses it directly. For Android, also set android.adaptiveIcon with a foregroundImage and a backgroundColor, because Android renders a two-layer adaptive icon rather than the flat iOS one. Then run an EAS build and Expo generates every derived size for you.
What is the difference between an iOS icon and an Android adaptive icon?
iOS uses a single flat square image and applies its own rounded-corner mask. Android uses an adaptive icon made of two layers - a foreground image floating over a background color or image - which the launcher can mask into a circle, squircle, or rounded square depending on the device. Give the Android foreground padding around the artwork so nothing important sits where a circular mask would crop it.
Last reviewed by David on September 9, 2026


