App icon meets platform size requirements
Why it matters
App stores validate icon assets during binary review — a missing density bucket or broken path in app.json causes immediate rejection before a human reviewer ever sees your app. Android's adaptive icon system requires exact pixel dimensions at each mipmap density (mdpi through xxxhdpi); a missing xxxhdpi icon renders as a blurry, pixelated smear on flagship Pixel and Samsung devices. Apple's HIG requires discrete sizes for each display context (home screen, Spotlight, Settings). A single absent size silently fails submission. Beyond rejection, incorrectly sized icons degrade the visual identity of your app on every device class that uses the missing density, directly undermining user trust at the moment of first impression.
Severity rationale
Critical because a missing or broken icon file causes automatic app store binary rejection, blocking all users from reaching the app.
Remediation
Generate a complete platform icon set from a 1024x1024 master (no pre-rounded corners — the OS applies rounding). For Expo projects, reference the master in app.json and let EAS export platform sizes; for bare React Native, export directly into the platform directories.
// app.json (Expo)
{
"expo": {
"icon": "./assets/icon.png",
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
}
}
}
}
For bare React Native Android, place PNGs at the correct pixel dimensions under android/app/src/main/res/mipmap-mdpi/ (48×48) through mipmap-xxxhdpi/ (192×192). For iOS, populate the Images.xcassets/AppIcon.appiconset/ catalog with 120×120, 152×152, 167×167, and 180×180 variants.
Detection
- ID:
icon-sizes-correct - Severity:
critical - What to look for: Check
app.jsonforiconfield pointing to the app icon file. For iOS, verify icon exists and app.json reference is valid. For Android, checkandroid/app/src/main/res/mipmap-*/ic_launcher.pngfor densities: mdpi (48x48), hdpi (72x72), xhdpi (96x96), xxhdpi (144x144), xxxhdpi (192x192). For iOS via Xcode assets, icons should be 120x120, 152x152, 167x167, 180x180. Expo projects usingapp.jsonshould have a 1024x1024 icon referenced. - Pass criteria: Count all icon files found across all platform directories. App icons exist in all required sizes and formats for both iOS and Android (or the single platform being targeted). At least 5 distinct icon size files must be present for a dual-platform app. The icon path in
app.jsonresolves to a valid file. Report even on pass: "X of Y required icon sizes found across Z platform directories." - Fail criteria: Missing icon files, incorrect sizes for any required density/format, or broken icon path in config. Do NOT pass when only a single 1024x1024 master icon exists without platform-specific exported sizes.
- Cross-reference: The Mobile Navigation & Deep Linking audit (
mobile-navigation-linking) checks app.json configuration consistency that also affects icon path resolution. - Skip (N/A) when: Project targets neither iOS nor Android (API-only or server project).
- Detail on fail: Specify which densities or sizes are missing. Example:
"Missing xxhdpi (144x144) and xxxhdpi (192x192) Android icons. iOS icon 180x180 not found in expected path."or"Icon path in app.json points to non-existent file: assets/icon.png" - Remediation: Both iOS and Android require app icons in multiple sizes to display correctly on all device densities. Generate a complete icon set:
- Start with a 1024x1024 master icon (no rounded corners — the OS rounds them)
- For iOS: Use Xcode asset catalog or export 120x120, 152x152, 167x167, 180x180
- For Android: Export to mipmap folders: mdpi (48x48), hdpi (72x72), xhdpi (96x96), xxhdpi (144x144), xxxhdpi (192x192)
- In Expo, reference the 1024x1024 icon in app.json:
{ "icon": "./assets/icon.png" } - For React Native without Expo, add icons directly to Xcode assets and Android mipmap directories
External references
- external · apple-hig-app-icons — Apple Human Interface Guidelines — App Icons
- external · google-play-icon-specs — Google Play — App icon design specifications
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-store-readiness·automated