Many React Native projects work fine during development but get stuck when it’s time to publish. For example, Xcode can run the project, but Archive fails; an IPA can be generated, but after uploading, there’s no build, and TestFlight never shows a version.

These issues are not actually React Native problems, but rather a misunderstanding of the iOS release process.


First, Confirm the Project Has iOS Build Capabilities

First, run locally:

npx react-native run-ios

If it runs successfully, proceed to the next step.


Check the ios Directory

In a React Native project:

  • The /ios directory is the complete iOS project
  • The actual packaging is done by Xcode

Enter the directory:

cd ios
pod install

Complete Necessary Configuration in Xcode

Open:

open ios/YourProject.xcworkspace

Configure Bundle ID

Path:

  • Targets → General → Bundle Identifier

Ensure:

  • It matches the one in App Store Connect

Configure Version Numbers

Version (CFBundleShortVersionString)
Build (CFBundleVersion)

Each upload:

  • Build must be incremented

Signing Preparation: React Native Doesn’t Do This Automatically

Most RN project build failures are caused by signing issues.

You need to prepare:

  • Distribution certificate
  • App Store provisioning profile

Use AppUploader to Generate Signing Files

Using AppUploader (Happy Publishing) can directly generate:


Create a Certificate

  1. Open the certificate management
  2. Click Add New
  3. Select Distribution
  4. Set a name
  5. Set a P12 password
  6. Download the .p12

Create Certificate


Create a Provisioning Profile

  1. Enter Profile management
  2. Create a new App Store type
  3. Select Bundle ID
  4. Bind the certificate
  5. Download the .mobileprovision

Create Provisioning Profile


Import into Xcode

  • Double-click .p12 to import into Keychain
  • Double-click .mobileprovision to install

Archive to Build IPA

In Xcode:

  1. Select the device as Any iOS Device
  2. Click Product → Archive

After building:

  • Open Organizer
  • Select the newly generated Archive

Export IPA

Choose:

Distribute App → App Store Connect → Export

Export the .ipa file.


Upload IPA (Can be done without Xcode)

Once IPA is generated, uploading can be done without macOS.

You Can Use AppUploader to Upload

Steps:

  1. Open the Submit Upload page
  2. Enter Apple ID
  3. Set an app-specific password
  4. Select the IPA file
  5. Select the upload channel (1 or 2)
  6. Click Upload

Upload


Verify After Upload

Go to:

App Store Connect → TestFlight

Wait for Processing to complete.

asc


A Common Issue: Upload Success but No Build

This is relatively common in RN projects.

Check the Build number – is it incremented?

Check the Bundle ID – does it match the one in App Store Connect?

Check the signing type – is an App Store provisioning profile used?

Check the provisioning profile – is it bound to the correct certificate?


React Native Specific Pitfall

If you use third-party libraries (e.g., push notifications, login), note:

Are Capabilities Enabled?

In Xcode:

  • Signing & Capabilities
  • Enable the corresponding capabilities (Push, Associated Domains, etc.)

Ensure They Match the App ID

In Apple Developer:

  • Enable the same capabilities

Otherwise:

  • Build may pass
  • Review or runtime may fail

Publishing a React Native project to the App Store is essentially following the iOS native release process.