Before you submit anything
- Developer accounts (Google Play Console, Apple Developer Program) owned by your organisation
- App signing keys created and stored safely
- A hosted privacy policy URL that describes what the app really does
- An audit of every SDK in the app and what data it collects
- Release notes, support email and a working contact channel
Google Play launch steps
Create the app record
Name, default language, app or game, free or paid. Paid cannot be changed to free later without a new app.
Complete the listing
Title, short and full description, icon, feature graphic, phone and tablet screenshots.
Fill in policy forms
Content rating, target audience, ads declaration, Data safety form, privacy policy URL.
Upload a signed release
An app bundle that meets the current target API level requirement.
Test first
Internal and closed testing tracks. New personal accounts must run a closed test before production access.
Roll out in stages
Start with a percentage of users, watch crashes and reviews, then expand.
App Store launch steps
Set up identifiers and profiles
Bundle ID, certificates and provisioning profiles in the developer account.
Create the App Store Connect record
Name, category, age rating, privacy nutrition labels, pricing.
Prepare the listing
Screenshots for each required device size, description, keywords, support and privacy URLs.
Test with TestFlight
Internal testers, then external testers after a short review.
Submit with review notes
A demo account if the app needs sign-in, and explanations for any unusual permission.
Release
Manual or phased release once approved; monitor crashes and reviews.
The rejections we see most
- Data safety or privacy labels that do not match the app's behaviour
- Privacy policy missing, unreachable or generic
- Login-gated app with no demo account for reviewers
- Subscription screens without clear terms or a restore option
- Crashes on the reviewer's device
- Permissions requested without a plain-language reason
What to watch in launch week
Crash-free rate, uninstall rate, the first reviews, and whether the core workflow completes. Ship remote configuration and update prompts in version one so you can change settings and move users to a fix without waiting for the next review cycle. Our own apps use this to manage rollouts and forced updates.