Both Apple and Google require dozens of icon bitmaps for a single app: different contexts (Home Screen, settings, notifications) and different screen densities. Creating them by hand in an image editor means dozens of export steps, manual file naming, and a high risk of mismatching Xcode’s Contents.json or Android’s mipmap folders. Here is a practical workflow that stays maintainable across updates.
Start with one high-quality master
Use a square image, ideally 1024×1024 pixels or larger, in PNG or JPEG. Work in sRGB unless you have a specific wide-gamut need (most store assets are sRGB). Avoid hairline strokes, micro-text, and busy backgrounds that become noise when the icon is shown at 29×29 pt in Settings. If your logo is not square, place it on a solid or simple gradient field so the final asset still reads as a square without awkward padding.
iOS: App Store / Xcode Asset Catalog
Apple stores icons in Assets.xcassets/AppIcon.appiconset. Each entry corresponds to a logical size in points (20pt through 1024pt) with 1x, 2x, or 3x PNGs as required. The Contents.json file is an index: if filenames or sizes drift, Xcode shows warnings and App Store Connect may reject the marketing icon.
The 1024×1024 slot is special: it is the App Store listing icon. Apple generally requires it without an alpha channel. Do not bake iOS’s rounded-rectangle mask into the file; the OS applies the mask. App Asset Generator emits the full AppIcon.appiconset plus valid Contents.json so you can merge into an existing catalog or replace the default empty set in a new project.
Android: Google Play and mipmap
Android expects launcher icons under res/mipmap-* (mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi). Each density maps to concrete pixel sizes—e.g. 48×48 at mdpi scaling up to 192×192 at xxxhdpi. Many OEM launchers crop icons to a circle; supplying ic_launcher_round.png alongside ic_launcher.png in each folder keeps your brand consistent in circular masks.
Play Console also asks for a 512×512 high-res icon and a feature graphic; those are listing metadata. Your in-app mipmap set is still required inside the binary—do not skip density folders or you will see soft icons on some devices.
End-to-end workflow
- Finalize the master artwork in Figma, Sketch, Photoshop, or Affinity.
- Export a single square PNG at 1024×1024 or larger.
- Open App Asset Generator, choose the App Icon tab, upload, and select iOS, Android, or both.
- Set the Android base name if needed (commonly
ic_launcher). - Download the ZIP; merge
AppIcon.appiconsetinto Xcode and mipmap folders into Android Studio’sres/. - Run on a real device and check Home Screen, task switcher, and Play Store / App Store previews.
After rebranding
When the logo changes, regenerate the entire set from a new master rather than scaling up a small old icon. Stale icons in forgotten densities are a common source of “it looks fine on my phone but blurry on another” bugs.