App Store Pre-Submission Quality Checklist (2026)
Before you submit to App Store / Google Play review, walk through this checklist. Each item catches a common issue that triggers rejection, delays, or post-launch problems.
ASOhack TeamMay 19, 20266 min read
App Store and Google Play rejections cost weeks. A rejected app can't ship until you fix + resubmit. Most rejections are avoidable with a pre-submission walkthrough.
This is the working checklist. Walk through before every release, not just the first.
Metadata + ASO
Title (iOS / Google Play)
- Under 30 characters (iOS) / 30-50 (Android).
- No competitor brand names.
- No promotional claims ("#1", "best").
- No emojis or special characters that won't render in all stores.
- Includes primary keyword naturally.
Subtitle (iOS) / Short description (Google Play)
- Under 30 chars (iOS) / 80 chars (Android).
- Different keywords than title.
- Reads naturally.
Keywords field (iOS only)
- Filled to ~100 characters.
- Comma-separated, no spaces.
- No plurals if singulars present (or vice versa).
- No words already in title or subtitle.
- No competitor brand names.
Description
- First 3 lines (visible before "more") sell the app.
- No false claims about features.
- No competitor mentions.
- Subscription terms clearly disclosed (if applicable).
- Google Play: long description uses top keywords 2-3 times naturally.
Localization
- If targeting multiple markets, each has its own listing.
- Translations done by humans (not just machine translation for major markets).
- Keywords researched per market, not just translated.
Screenshots
- At least 5 screenshots (more for visual categories).
- First 3 tell a complete story.
- Each has a clear caption.
- Text readable at thumbnail size.
- Real app content (not stock).
- Color contrast meets accessibility (4.5:1 minimum).
- Dark mode and light mode work.
- Different device sizes covered (iPhone + iPad).
App icon
- Stands out in your category's top-10 grid.
- Single focal point.
- Bright saturated colors.
- Readable at thumbnail size (60×60).
- No "Coming Soon" or "Beta" text.
- No competitor brand symbols.
App Preview video (if shipping)
- 15-30 seconds.
- First frame is engaging (not a logo).
- Captions on key moments.
- No external app/web references.
- No competitor names.
- No misleading claims.
Privacy
- Privacy policy URL is reachable.
- Privacy nutrition labels (iOS) match actual data practices.
- Data Safety section (Android) matches actual practices.
- ATT prompt (iOS) implemented if tracking SDKs are used.
- User data deletion option present (where required).
- No data collection beyond what's declared.
Subscriptions (if applicable)
- Subscription terms clearly disclosed in app + screenshot.
- Auto-renewal explicitly disclosed.
- Cancellation instructions clear.
- Pricing visible before purchase action.
- No misleading trial terms.
- Restore purchases functionality works.
Kids' apps (if applicable)
- "Made for Kids" / "Designed for Families" tag set.
- Parental gate for in-app purchases.
- No behavioral advertising.
- No external links.
- COPPA / GDPR-K compliance verified.
Technical
- Crash-free sessions ≥99.5%.
- Tested on lowest supported OS version.
- Tested on iPad and iPhone (iOS), tablet + phone (Android).
- No "Coming Soon" placeholder screens.
- No debug menus accessible to users.
- Push notification permission requested with context (not on launch).
- App handles network failures gracefully.
- App works in airplane mode where reasonable.
Demo / test account
- Demo account credentials provided in review notes.
- Demo account is functional (tested today, not 3 months ago).
- Demo account has enough data to demonstrate features.
Compliance categories
For specific categories:
Health / Medical
- No diagnostic claims without certification.
- Hedge all claims ("track", "monitor", not "diagnose", "cure").
- Disclaimer: "Not medical advice."
Financial / Fintech
- Region-restrict if needed.
- No unsubstantiated return claims.
- Compliance signals shown.
Crypto / Wallet
- Region-restrict to licensed markets.
- Risk disclaimers.
- No unauthorized exchange features.
AI / Generative
- Content moderation in place.
- Safety filters on user inputs/outputs.
- No misleading AI capability claims.
Internal testing
- Internal testers walked through main flows.
- First-launch experience tested.
- Critical paths tested (signup, paywall, purchase).
- Localized versions tested (at least sample).
Pre-submission analytics setup
- Analytics events fire correctly.
- Cohort tracking configured.
- Subscription events flow to your subscription tool.
- Attribution / SKAN configured for paid acquisition.
Submission notes
- Demo credentials + how to use them.
- Any feature flags that need to be enabled for reviewers.
- Specific use cases that demonstrate the app's value.
- Contact info if reviewer has questions.
Post-submission monitoring
- Crashlytics / Sentry monitoring active.
- Watch reviews from day 1.
- Support inbox staffed.
- Backup plan if a critical bug emerges.
What happens after submission
- iOS: typical review time 1-3 days for non-critical changes. Some categories take longer.
- Android: faster, often hours.
- Both: rejection rate higher for categories with strict policy (kids, health, finance).
If rejected, see App Store rejection recovery guide.
Run a final audit
Before submission, run free ASO audit one last time. It'll flag any listing-level issues.
Common mistakes
- Skipping the checklist for "minor" releases. A small change can trigger a full review.
- Outdated demo account credentials.
- Forgetting privacy nutrition label updates when you add a new SDK.
- Same screenshots from 6 months ago. Doesn't reflect current app.
- No internal testing. First-launch bugs found by users.
Related reading
- App Store Rejection Recovery Guide
- The Indie ASO Audit Checklist 2026
- Mobile App Privacy Disclosure Best Practices
- App Store Conversion Rate Optimization
- The Indie Mobile App 90-Day Launch Playbook
- Mobile App Crash Rate Monitoring
- App Accessibility for ASO
Try the tools
Ready to Optimize Your App Store Listing?
Try our free ASO tools — no signup required.