Hire me

How to Publish a React Native App to the App Store and Google Play: A Complete Checklist

Mobile App Development
Wikram DasNovember 10, 20263 min read0 views

Writing the app is only part of the job. The release (accounts, signing, store listings, privacy forms, review) is where first launches often slip by a week or two. This is the checklist I use to ship client apps built with React Native and Expo.

Before you start: accounts

  • Apple Developer Program: a paid yearly membership. Enrol as an organisation if the app belongs to a company. You'll need a D-U-N-S number, which can take days to get, so start early.
  • Google Play Console: a one-time registration fee. New personal accounts must run a closed test with real testers for a set period before they can publish to production. Check Google's current rules and plan for that time.

Tip: create both accounts under the client's company, then invite the developer. The client should always own their apps.

1. App identity

  • Choose the bundle identifier (iOS) and package name (Android), e.g. com.company.app. You can't change these after release.
  • Set the display name, version (1.0.0) and build number.
  • Prepare the app icon (1024×1024, no transparency for iOS) and splash screen.

With Expo these all live in app.json / app.config.ts.

2. Build and sign

With EAS Build you don't need a Mac to build for iOS:

npm install -g eas-cli
eas login
eas build:configure
eas build --platform all --profile production

EAS can create and store your iOS certificates and provisioning profiles and your Android upload keystore. Back up the Android keystore. If you lose it, you'll need Google's upload-key reset process before you can ship updates.

3. Test on real devices

  • iOS: upload to TestFlight and install on at least one older iPhone.
  • Android: use an internal testing track, and test on a low-end device too.
  • Check: sign-up and login, push notifications, deep links, payments in sandbox mode, offline behaviour, and dark mode.

4. Store listings

You'll need for both stores:

  • Short and full description (write for humans first, then work in the keywords people search for)
  • Screenshots for each required device size
  • Privacy policy URL (required on both stores)
  • Support URL and contact email
  • Category and content rating questionnaire

5. Privacy forms

This is where most first submissions get stuck.

  • Apple: App Privacy "nutrition labels", plus a privacy manifest for the APIs and SDKs you use. If you track users across apps, you need the App Tracking Transparency prompt.
  • Google: the Data safety form. Declare everything your SDKs collect too: analytics, crash reporting, ads.
  • If users can create an account, both stores require a way to delete it from inside the app (and Google also requires a web link).

6. Submit

eas submit --platform ios
eas submit --platform android

Common rejection reasons I've run into:

  • A login is required but no demo account was given to the reviewer
  • Placeholder content or broken links
  • Asking for permissions without a clear reason in the prompt text
  • Digital goods sold through an external payment link where Apple's rules require in-app purchase

Apple review usually takes about a day or two. Google is often faster, though new accounts can take longer.

7. After launch

  • Set up crash reporting (Sentry or Firebase Crashlytics) before launch, not after the first bad review.
  • Use over-the-air updates (EAS Update) for JavaScript-only fixes. Native changes still need a new store build.
  • Bump the build number for every upload. Both stores reject a build number they've already seen.

Need help getting an app over the line? Get in touch. I've taken plenty of React Native apps through both stores and can usually spot a rejection before Apple does.

Get new posts by emailPractical React Native and web notes, about twice a month. No spam, unsubscribe any time.