Skip to content

Mobile

App Icon Sizes 2026: iOS, Android Adaptive Icons and Expo app.json

The app icon sizes iOS, Android and Expo need in 2026: the 1024 px master, adaptive icon layers and safe zone, mipmap densities, the Play 512 px icon and exact app.json keys.

November 13, 20266 min read#mobile#tools#react-native#indie#launch
Testers Community — 12 testers for Google PlayGoogle Play's closed test needs 12 testers for 14 days. Get them from a tester community, free or paid.affiliatetesterscommunity.com ↗

Start from one square 1024 × 1024 PNG. That single master covers iOS (Xcode and Apple scale it down), the Expo icon key, and the Android adaptive icon foreground once you shrink the artwork into the safe zone. Android also wants a 512 × 512 PNG for the Google Play listing, and, if you build the native project yourself, launcher PNGs at five densities.

The app icon generator turns one image into all of it: an Xcode AppIcon.appiconset, Android mipmap folders, the Play icon and Expo's icon.png and adaptive-icon.png, zipped in your browser. This guide explains each size and why. Checked against Apple, Android and Expo docs on 13 November 2026.

The sizes at a glance

PlatformFileSizeNotes
iOS, iPadOSApp icon1024 × 1024 pxSystem scales smaller sizes; PNG or Icon Composer file
Android launcher (legacy)ic_launcher.png48, 72, 96, 144, 192 pxmdpi to xxxhdpi, in mipmap-* folders
Android adaptiveForeground, background (and monochrome) layers108 × 108 dpLogo inside the central 66 × 66 dp
Google Play listingIcon512 × 512 px32-bit PNG, sRGB, max 1024 KB
Expoicon1024 × 1024 px recommendedPNG, exactly square

iOS: one 1024 px master

Apple's Human Interface Guidelines give the layout size for iOS, iPadOS and macOS icons as 1024 × 1024 px, and say the system scales it for Settings, notifications and other places. You can supply a flat bitmap such as PNG or a layered Icon Composer file. Apple prefers PNG for raster artwork. Supported colour spaces are sRGB, Gray Gamma 2.2 and Display P3.

In Xcode, iOS and iPadOS apps can generate all variants from a single 1024 × 1024 image. That is the default for new projects (the "Single Size" option). You only need individual assets if you want more detail at larger sizes.

Provide square layers and keep the artwork centred: the system masks the corners, and Apple warns that pre-masked layers hurt specular highlights and make edges look jagged.

iOS also lets people choose default, dark, clear or tinted icons, and the system generates the variants you don't provide. Apple's Xcode docs say to give the tinted icon as a grayscale image and the dark icon a transparent background.

Android: adaptive icons

Adaptive icons are the current Android format. The Android developer docs require two layers, foreground and background, each 108 × 108 dp, with clean edges (no masks or shadows baked in). Vectors are preferred, bitmaps work.

The geometry is the part people get wrong:

  • The outer 18 dp on every side is reserved for masking and effects such as parallax.
  • The inner 66 × 66 dp is the safe zone that no OEM mask clips.
  • Your logo should be at least 48 × 48 dp and no more than 66 × 66 dp.

The optional third layer is monochrome. Since Android 13 (API 33), users can enable themed icons, and apps that provide a monochrome layer get tinted to the wallpaper. Per the docs, Android 16 QPR 2 themes icons automatically for apps that don't supply one.

<!-- res/mipmap-anydpi-v26/ic_launcher.xml -->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
    <background android:drawable="@drawable/ic_launcher_background" />
    <foreground android:drawable="@drawable/ic_launcher_foreground" />
    <monochrome android:drawable="@drawable/ic_launcher_foreground" />
</adaptive-icon>

Legacy launcher densities

Android's density guide scales bitmaps in a 3:4:6:8:12:16 ratio, which from a 48 px mdpi baseline gives:

Density folderScaleSize
mipmap-mdpi1.0×48 × 48
mipmap-hdpi1.5×72 × 72
mipmap-xhdpi2.0×96 × 96
mipmap-xxhdpi3.0×144 × 144
mipmap-xxxhdpi4.0×192 × 192

Put launcher icons in mipmap folders, not drawable: the docs explain that mipmap directories are always kept in the APK, even in density-specific builds, so launchers that draw icons larger can pick the best resolution.

The Google Play icon

The Play listing icon is separate from the launcher icon. Google's specification: 512 × 512 px, 32-bit PNG, sRGB, maximum 1024 KB, a full square with no shadow. Google Play applies the rounded mask (a radius of 30% of the icon size) and the drop shadow itself, so don't round or shadow your file.

Expo: the app.json keys

Expo's app icon docs and config reference recommend a 1024 × 1024 PNG for icon. For ios.icon, Expo says the image must be exactly square (1023 × 1024 is invalid) and must fill the whole square with no rounded corners or other transparent pixels, because the OS applies the mask. Expo generates the other sizes.

{
  "expo": {
    "icon": "./assets/images/icon.png",
    "android": {
      "adaptiveIcon": {
        "foregroundImage": "./assets/images/adaptive-icon.png",
        "backgroundColor": "#ffffff"
      }
    }
  }
}

Other documented options:

  • ios.icon can be an object with light, dark and tinted paths, or a path to an Icon Composer .icon directory (SDK 54 and later).
  • android.adaptiveIcon.monochromeImage supplies the Android 13+ themed icon.
  • android.adaptiveIcon.backgroundImage overrides backgroundColor and must have the same dimensions as foregroundImage.

Expo's docs do not state a pixel size or safe zone for the adaptive layers and refer to Android's guidelines, so the 66/108 rule above applies.

Steps

  1. Export your logo as a square PNG or SVG, ideally 1024 × 1024.
  2. Open the app icon generator and add it. Pick a background colour: it fills transparent areas on the iOS and Expo icons and goes into adaptiveIcon.backgroundColor.
  3. Check the previews, especially the dashed 66 dp circle on the adaptive icon.
  4. Download the zip. Use ios/AppIcon.appiconset for native iOS, the android/mipmap-* folders for res/, or the expo folder for an Expo app's assets/.
  5. Paste the generated app.json snippet, then rebuild the app so the new icons are picked up.

The generator draws the Android foreground into the central 66 of 108 dp, keeps its transparency, and writes the Android launcher PNGs with a circle-clipped round variant. It does not produce dark, tinted or monochrome icon variants.

Common mistakes

  • Pre-rounded corners. Apple, Google Play and Expo all say the platform applies the mask. Rounding it yourself gets it rounded twice.
  • Logo outside the 66 dp circle. It will be clipped on some launchers.
  • A transparent iOS icon. Expo says ios.icon must not have transparent pixels. Flatten it onto a solid colour.

Once the icon is done, the store listing needs screenshots: see App Store screenshot sizes in 2026 and the screenshot resizer. For design references, Mobbin and AppShot Gallery show how shipped apps present their icons and store pages. More tools for solo mobile developers are in best mobile tools for solo developers, and the rest of our free utilities are in the toolbox.

FAQ

What size is an iOS app icon?

1024 × 1024 px. Apple's HIG lists that as the layout size for iOS and iPadOS, and Xcode can generate every other size from one image.

How do I set my app icon in Expo?

Set expo.icon to a 1024 × 1024 PNG and, for Android, expo.android.adaptiveIcon.foregroundImage plus a backgroundColor.

Sources