Publish to the App Store

Ship a React Native app to the App Store: App Store Connect setup, TestFlight, required metadata, and common rejection reasons.

This guide covers the process of publishing a React Native app to Apple's App Store, and the specific things that get apps rejected.

Quick Answer

Join the Apple Developer Program, create an app record in App Store Connect matching your bundle identifier, archive and upload a build (via Xcode, Transporter, or eas submit), test it through TestFlight, fill in all required metadata (screenshots, privacy policy, App Privacy questionnaire, export compliance), then submit for review and expect it to take at least a day, sometimes with a rejection round-trip.

1. Prerequisites

2. Create the App Store Connect Record

In App Store Connect, create a new app, matching the exact bundle identifier your build is signed with. This is where all metadata, screenshots, and review status live.

3. Upload a Build

Use Xcode's Organizer, the standalone Transporter app, or eas submit if you built with EAS. The build appears in App Store Connect after processing, usually within minutes to an hour.

4. Test with TestFlight First

Before submitting for public review, distribute the build to internal or external testers through TestFlight. This catches crashes and obvious issues without burning a review cycle.

5. Required Metadata

  • Screenshots for each required device size class;
  • a privacy policy URL;
  • the App Privacy questionnaire, declaring what data the app actually collects and how it's used, this must match what the app's code actually does;
  • export compliance information (whether the app uses encryption beyond what's exempt, which almost all apps using HTTPS qualify for, but you still have to answer the question).

6. Common, Avoidable Rejection Reasons

  • A broken demo/reviewer account. If your app requires login, provide working credentials in the App Review notes, and make sure they still work when review actually happens.
  • Missing Sign in with Apple when the app offers other third-party social logins (Google, Facebook, etc.); Apple requires parity.
  • Using a payment processor like Stripe for digital content that should go through In-App Purchase (see In-App Purchases and Subscriptions).
  • Vague permission purpose strings ("we need your location") instead of specific, honest ones.
  • Placeholder or incomplete content left in from development.

7. After Submission

Review typically takes anywhere from several hours to a couple of days. Budget for at least one rejection round-trip on a first submission; it's common even for correctly built apps, often over metadata rather than the app itself.

Common Issues

Build doesn't appear in App Store Connect after upload processing can take up to an hour; if it never appears, check for an email about a validation failure.

Rejected for a broken login flow during review the reviewer's test account credentials were wrong, expired, or the account had incomplete required data (e.g. no seeded content to actually demo the app).

Rejected for missing Sign in with Apple add it if the app offers any other third-party social login.

App Privacy answers don't match reality the questionnaire is checked against actual app behavior in some cases; answer it accurately rather than optimistically.

Verification Checklist

  • the app record's bundle identifier matches the signed build exactly;
  • the build has been tested through TestFlight before public submission;
  • all required screenshots, privacy policy, and App Privacy answers are complete and accurate;
  • reviewer demo credentials, if needed, are provided and verified working;
  • Sign in with Apple is present if any other social login is offered;
  • no digital content purchases route through a non-IAP payment processor.

Next Steps