App icon compliant — 1024×1024 with no alpha channel (iOS), no misleading badges
Why it matters
Apple's binary validation runs before any human reviewer sees the app. A 1024×1024 marketing icon with an alpha channel fails binary validation immediately — the submission is rejected with a cryptic asset error, not a guideline violation, which means no appeal pathway. Badge overlays ('FREE', '#1', 'Award') violate Apple Guideline 2.3.6 and trigger rejection during human review. Shipping the default Expo or React Native framework icon signals an unfinished product, increasing the likelihood of rejection on subjective 'minimum functionality' grounds. On Android, a missing ic_launcher_round.png causes visual corruption on adaptive-icon-capable devices running Android 8+.
Severity rationale
Medium because the failure mode is a blocking submission error rather than a security or data integrity issue, but it halts every release cycle.
Remediation
Create a 1024×1024 PNG with zero transparency. Verify with ImageMagick before submission:
identify -format "%[channels]" assets/icon.png
# Must NOT show 'rgba' or 'alpha'
For Expo, ensure app.json has both icon and android.adaptiveIcon.foregroundImage set and pointing to files that exist in the repository. Do not pre-round icon corners — Apple applies rounding at render time. Remove any badge, text, or ranking overlay from the icon asset itself. Store production icon sources in src/assets/icon/ with a README noting the no-alpha requirement.
Detection
- ID:
icon-compliant - Severity:
medium - What to look for: Locate the app icon source file. For Expo, this is
assets/icon.png(referenced inapp.jsonas"icon": "./assets/icon.png"). For React Native CLI, checkios/[AppName]/Images.xcassets/AppIcon.appiconset/for the1024x1024entry andandroid/app/src/main/res/mipmap-*/ic_launcher.pngfor Android launcher icons. For Flutter, checkandroid/app/src/main/res/mipmap-*/andios/Runner/Assets.xcassets/AppIcon.appiconset/. Check for: (a) iOS requires the 1024×1024 marketing icon to have NO alpha channel (transparent pixels cause automatic rejection) — look foricon.pngfiles and note if they appear to have rounded corners baked in (they shouldn't; Apple applies rounding itself), (b) badge overlays in the icon image: "New!", "#1", "Free", "Sale", "Best", "Award", "Top" — Apple explicitly prohibits text or badge overlays that imply endorsement or ranking, (c) icons that are the default framework template icon (Expo's default is a solid blue circle with a white "E"; React Native CLI default is a React logo), (d) icons that mimic another app's icon in color, shape, or design (this overlaps with the impersonation check). For Android, also check ific_launcher_round.pngis present (required for adaptive icons on Android 8+). Inapp.json, check thatexpo.iconpoints to an existing file andexpo.android.adaptiveIcon.foregroundImageis configured. Count all instances found and enumerate each. - Pass criteria: A 1024×1024 icon source file is present; the icon appears custom (not the framework default); there are no badge overlays or misleading text in the icon; for Expo projects, both
iconandandroid.adaptiveIcon.foregroundImageare configured. At least 1 implementation must be confirmed. - Fail criteria: No 1024×1024 icon found; icon appears to be the default framework template icon; icon contains badge overlays or ranking text;
app.jsonreferences an icon file that does not exist in the repository. - Skip (N/A) when: Never — icon compliance is always required.
- Cross-reference: The
screenshots-actual-uicheck validates the visual assets that accompany the icon verified here. - Detail on fail:
"app.json references './assets/icon.png' but this file is not present in the repository"or"Icon appears to be the default Expo template icon (solid blue circle)"or"Icon contains 'FREE' badge overlay, which violates App Store guidelines". - Remediation: Icon issues cause automatic rejection during Apple's binary validation stage — before any human ever reviews it.
- Create a 1024×1024 PNG icon with no alpha/transparency (use a solid background or fully opaque design)
- Do not pre-round the corners — Apple applies rounding automatically; a pre-rounded icon with a white corner background looks wrong
- Remove any badge text from the icon itself — conveying ratings, pricing, or accolades in the icon is prohibited
- For Expo: ensure
app.jsonhas both"icon": "./assets/icon.png"and"android": { "adaptiveIcon": { "foregroundImage": "...", "backgroundColor": "#FFFFFF" } } - Verify the icon file actually exists at the path referenced in
app.jsonStore icon source files insrc/assets/icon/orapp/assets/. Export 1024x1024 PNG with no transparency for App Store Connect andsrc/assets/icon.pngfor the build.
External references
- external · apple-guideline-2.3.6 — Apple App Review Guideline 2.3.6 — App Icon Requirements
Taxons
History
- 2026-04-18·v1.0.0·Initial import from app-store-metadata-listing·automated