Splash screen image exists and is properly sized
Why it matters
A missing or undersized splash screen causes two distinct failures: App Store binary rejection (both stores validate that the referenced file exists and meets minimum dimensions) and a jarring white flash during app cold start on devices where the OS cannot scale a too-small image. Expo's required minimum of 1080×1920 matches the baseline 9:16 device ratio; dropping below that introduces pixelation on any mid-range or flagship device. Apple's HIG (apple-hig-launch-screen) and Android's splash screen API (android-splash-screen) both require a launch image to prevent a blank white screen during initialization — omitting it degrades the perceived startup performance that store review teams actively evaluate.
Severity rationale
High because a broken or absent splash screen reference blocks app store binary validation and produces a visible white flash on every cold start, immediately degrading first-run experience.
Remediation
Create a 1080×1920 splash image and wire it in app.json. The resizeMode should be contain (not cover) to prevent cropping on non-standard aspect ratios.
// app.json
{
"expo": {
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#ffffff"
}
}
}
For bare React Native iOS, add a LaunchScreen.storyboard in Xcode that references the image. For Android, place a drawable in android/app/src/main/res/drawable/launch_screen.xml. Confirm the file physically exists at the declared path before submitting — a broken reference causes silent build failure in EAS.
Detection
- ID:
splash-screen-configured - Severity:
high - What to look for: Check
app.jsonforsplashfield withimageproperty. Count all splash screen configuration files found across platforms. Verify the image file exists at the path specified. For Expo, the recommended size is 1080x1920 (9:16 ratio). For React Native, check for splash screen configuration inios/[AppName]/LaunchScreen.storyboardorandroid/app/src/main/res/drawable/launch_screen.xml. - Pass criteria: Splash screen image exists, is referenced correctly in config, and uses a minimum size of at least 1080x1920 pixels or equivalent aspect ratio. The
splash.imagepath inapp.jsonmust resolve to an actual file. Report: "Splash screen at path X with configured resizeMode Y." - Fail criteria: No splash screen image found, path in config is broken, or image size is below 1080x1920 pixels (e.g., 480x640 or smaller). Do NOT pass when a splash config exists in app.json but the image file is missing at the referenced path.
- Skip (N/A) when: Never — splash screen is required for app store submission.
- Detail on fail: Specify the issue. Example:
"No splash image found at path specified in app.json: assets/splash.png"or"Splash image dimensions are 600x800 — recommended 1080x1920 to prevent pixelation on high-DPI devices" - Remediation: A splash screen displays during app startup while code initializes. Create or provide a splash screen:
- Design a 1080x1920 image (portrait orientation, 9:16 ratio) that matches your app's branding
- In Expo (app.json):
"splash": { "image": "./assets/splash.png", "resizeMode": "contain", "backgroundColor": "#ffffff" } - For React Native iOS, add a storyboard file or static image set
- For React Native Android, add a drawable XML or static image in
res/drawable/ - Use vector graphics (SVG) where possible for better scaling
External references
- external · apple-hig-launch-screen — Apple Human Interface Guidelines — Launch Screen
- external · android-splash-screen — Android Developer — Splash screens
Taxons
History
- 2026-04-18·v1.0.0·Initial import from mobile-store-readiness·automated