Shipping & Release· 6 min read

How to Publish a React Native App to the App Store, Step by Step

Publish a React Native or Expo app to the App Store in 2026: developer account, App Store Connect, EAS Build and Submit, TestFlight, review and release.

By

Full-Stack, Mobile & AI Engineer

The first time you publish a React Native app to the App Store, it feels like a maze: certificates, provisioning profiles, App Store Connect forms, privacy questions and a review queue. The good news is that in 2026 most of the painful parts are automated if you use Expo's build and submit tools, and the rest is a list of forms you fill in once.

Here's the whole process, step by step, from developer account to "Ready for Distribution". I'll use EAS Build and EAS Submit (the fastest path for Expo and most React Native apps), and note the Xcode route for bare projects.

Key takeaways

  • You need an Apple Developer Program membership ($99 a year). Enrolling as a company requires a D-U-N-S number, so start early.
  • EAS Build creates and manages your certificates and provisioning profiles, and EAS Submit uploads the build to App Store Connect.
  • Use TestFlight first. Internal testers can install the build within minutes of processing.
  • The App Store listing and privacy answers take as long as the build. Prepare screenshots, descriptions and App Privacy details in advance.
  • Apple reviews most submissions within 24 to 48 hours. Choose manual release and phased release so you control the launch.

Step 1: enrol in the Apple Developer Program

Enrol at Apple's developer site as an individual or as an organisation. For a business, enrol as an organisation so the app is published under the company's name; you'll need a D-U-N-S number and Apple will verify your details, which can take days.

Step 2: create the app in App Store Connect

In App Store Connect, go to Apps → New App and enter:

  • Platform (iOS), app name, primary language.
  • Bundle ID, for example com.yourcompany.yourapp. It must match your app config exactly and can't change later.
  • SKU (any internal reference).

Step 3: configure your app

In an Expo project, set the identifiers and versions in app.json (or app.config.ts):

{
  "expo": {
    "name": "Your App",
    "version": "1.0.0",
    "ios": {
      "bundleIdentifier": "com.yourcompany.yourapp",
      "supportsTablet": false,
      "infoPlist": {
        "NSCameraUsageDescription": "Scan the QR code at your studio's front desk to check in."
      }
    }
  }
}

Let EAS manage build numbers so you never upload a duplicate:

{
  "cli": { "appVersionSource": "remote" },
  "build": {
    "production": { "autoIncrement": true }
  },
  "submit": { "production": {} }
}

That's eas.json. autoIncrement bumps the iOS build number on every production build.

Step 4: build with EAS

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

The first iOS build asks to log in to your Apple account and offers to create the distribution certificate and provisioning profile for you. Accept, and EAS stores them for future builds. The build runs in the cloud and produces an .ipa.

Bare React Native instead? Open the .xcworkspace in Xcode, choose Product → Archive, then Distribute App → App Store Connect. Fastlane can automate the same steps in CI.

Step 5: submit to App Store Connect

eas submit --platform ios --profile production

EAS Submit uploads the build using an App Store Connect API key (it can create one for you). You can also combine steps with eas build --platform ios --auto-submit. After upload, Apple processes the build for a few minutes; problems like a missing privacy manifest declaration are emailed to you at this stage.

Step 6: test with TestFlight

Once processed, the build appears in TestFlight. Add yourself and your team as internal testers (up to 100 people from your App Store Connect team) and install it with the TestFlight app. External testers (outside your team) need a short beta review first. Test the release build on real devices, on cellular data, before going further.

Step 7: complete the App Store listing

In the version's page in App Store Connect, fill in:

SectionWhat to prepare
ScreenshotsThe 6.9-inch iPhone set; a 13-inch iPad set if you support iPad
Description, keywords, subtitleWhat the app does, in plain language
Support URL, marketing URLLive pages with contact details
Privacy policy URLPublic, describing your data practices
App PrivacyWhat the app and its SDKs collect, and how it's used
Age ratingQuestionnaire answers
Pricing and availabilityPrice tier and countries
In-app purchasesProducts attached to the version, if any

Step 8: add review information and submit

In App Review Information, add a demo account with realistic data, contact details, and notes explaining anything non-obvious: hardware the reviewer won't have, background location, subscription-only features. Choose "Manually release this version" so approval doesn't launch the app before you're ready, then Add for Review and Submit.

From the field: EAS Build and Submit, TestFlight, store review including rejection handling, and phased rollouts are part of the release path I own on the apps I ship. The step that most deserves care isn't technical: it's the demo account and the review notes, because they decide whether the reviewer can see your app working at all.

Step 9: release

Apple says it reviews at least half of submissions within 24 hours and 90% within 48 hours. Once approved, release the version and turn on phased release, which spreads automatic updates over seven days and can be paused if crash reports spike.

If something urgent comes up, such as a critical bug fix or an event-related launch, you can request an expedited review through Apple's contact form, explaining the situation and, for a bug, the steps to reproduce it.

After launch: updates

For later releases, bump the app version when the release is meaningful, build and submit again, and use EAS Update for JavaScript-only fixes between store releases, within Apple's rules on downloaded code.

App Store review times and expedited reviews

Apple reviews at least 50% of submissions in under 24 hours and 90% in under 48 hours. New apps tend to take longer than updates, and holiday periods slow things down. When a release can't wait, for a critical bug fix or a launch tied to an event, request an expedited review through App Review's contact form, explaining the bug and how to reproduce it, or the date that matters. Use it sparingly; it's a request, not a guarantee.

Before your first paid release, also budget for Apple's commission on digital sales: 30% as standard, or 15% for members of the App Store Small Business Program and for subscriptions after a subscriber's first year.

FAQ

How much does it cost to publish an app on the App Store?

The Apple Developer Program costs $99 a year. There's no per-app fee. Apple takes a commission on paid apps, in-app purchases and subscriptions, and EAS has a free tier with paid plans if you need more or faster builds.

Do I need a Mac to publish a React Native app to the App Store?

Not if you use EAS Build, which builds the iOS app in the cloud, and EAS Submit, which uploads it. For bare projects built locally, you need a Mac with Xcode. A Mac is still handy for running the iOS simulator.

How long does App Store review take?

Apple says it reviews at least 50% of submissions within 24 hours and 90% within 48 hours. Allow extra time for a possible rejection and resubmission, and don't announce a launch for the same day you submit.

Can I expedite an App Store review?

Yes, for genuine urgency, such as a critical bug fix or a launch tied to an event you're directly associated with. Request it through Apple's expedited review form, and include the steps to reproduce the bug or the event details.

Next steps

If you'd like your first App Store release handled end to end, from developer account to approval, I can set it up so every future release is one command. Get in touch, or see how I work as a React Native developer.

Sources

Bhuwanesh Sisodia

Bhuwanesh Sisodia

Full-Stack, Mobile & AI Engineer

Bhuwanesh Sisodia is a Full-Stack, Mobile & AI Engineer based in Mumbai, with 7+ years of experience and 50+ apps shipped to the App Store and Google Play. He works independently with startups and product teams worldwide.

About meGitHubLinkedInX

Related