Join CTO Moataz Soliman as he explores the potential impact poor performance can have on your bottom line. 👉 Register Today

ebook icon

App Development

General

How to Deploy a React Native App for iOS and Android

How to Deploy a React Native App for iOS and Android

Congratulations, you've finished your development process and now you're looking to deploy your React Native app on the Apple App Store and Google Play Store. While React Native is a great cross-platform development tool, it doesn't automate the process of deploying your app to the stores.

This guide will walk you through the steps you need to follow to get your Android and iOS apps ready for publishing on the Apple App Store and Google Play Store.

Mobile App Launch Prerequisites

App Launch Prerequisites

There are a few pieces of information that you need to have ready before launching your mobile app on both the App Store and Google Play. They include:

  • App Name: Short, catchy, unique, and relevant.
  • App Description: Describe what your app does while trying to organically include relevant keywords.
  • App Screenshots: Use screenshots to promote key features of your app, with the most important or valuable ones first.
  • App Version: The user-facing version number for your app on app stores.
  • Bundle ID: The standard format is com.CompanyName.AppName (e.g. com.spotify.music).
  • Developer/Publisher Profile: Apple Developer and Google Play Publisher accounts.

Apple App Store Prerequisites

  • App Icon: A 1024x1024 px icon with no transparency.
  • Keywords: You have 100 characters to choose as many relevant keywords as you can, separated by commas.
  • Countries: Choose whether your app will be available worldwide or in selected countries.
  • App Category: Pick an App Store category and subcategory that best suit your app.
  • Copyright: YYYY Company Name.
  • Test Account: A demo account created to be used by Apple during their review of your app. This account can be removed once your app has been approved.

Google Play Store Prerequisites

Make sure to follow app store optimization best practices to make the most out of your app store page on the App Store and Play Store to boost your app’s discoverability, downloads, and ranking.

Deploying a React Native App

Publishing an Expo App

To publish your Expo app, first, make sure that all your app.json configurations are set up. It looks something like this.

{
	 "expo": {
		"name": "App Name",
		"icon": "./path/to/your/app-icon.png",
		"version": "1.0.0",
		"slug": "app-slug",
		"sdkVersion": "XX.0.0",
		"ios": {
		"bundleIdentifier": "com.companyname.appname"
	},
	"android": {
	"package": "com.companyname.appname"
	}
	}
}

There are many properties that you can add, but only three are required:

  • name: The name of your app as it appears both within Expo and on your home screen as a standalone app.
  • slug: The URL slug for publishing. For example, "app-name" refers to the expo.io/@username/app-name project.
  • sdkVersion: The Expo sdkVersion to run the project. This should line up with the version specified in your package.json.

Once the app is ready and the configurations are set, follow these steps:

  1. Select the Publish button in Expo Dev Tools to publish your project. If you're using command line, run "expo publish".
  2. You will get a link (like this: expo.io/@username/app-name) where two versions of the code will be generated for iOS and Android.
  3. Every time you update the app, you will need to publish it again, and the changes will be reflected right away and available to your users.

Building Native Apps

Building an Android App

  1. Run "expo build:android".
  2. You will get the following message.
exp] No currently active or previous builds for this project.
Would you like to upload a keystore or have us generate one for you?
If you don't know what this means, let us handle it! :)
1) Let Expo handle the process!
2) I want to upload my own keystore!

3. You can either upload your own keystore or have Expo generate one for you. If you choose to have Expo generate one for you, make sure to back it up as you will need it to submit any future updates of the app, and without it you won't be able to update the app anymore.

4. To back up the keystore, run "expo fetch:android:keystore".

5. Your Android app will now start building. You can check the status of the build by running "expo build:status".

6. Once your app has been built, you will have a .apk URL of your Android app that you can download.

Building an iOS App

  1. Run "expo build:ios"
  2. You will get the following message:
[exp] No currently active or previous builds for this project.
? How would you like to upload your credentials?
(Use arrow keys)
❯ Expo handles all credentials, you can still provide overrides
I will provide all the credentials and files needed, Expo does no validation

3. Just like Android's keystore, you can either upload your own distribution certificate or let Expo handle it for you.

4. Your iOS app will now start building. You can check the status of the build by running "expo build:status".

5. Once your app has been built, you will have a .ipa url of your iOS app that you can download.

Now that your .apk and .ipa files are ready, follow these step-by-step guides to submit them to the Apple App Store and Google Play Store as you would with any native app.

Want to try our latest AI features?
Sign up to the closed beta now
Thank you! We'll contact you once a spot opens up.
Oops! Something went wrong while submitting the form.

Learn more:

Instabug empowers mobile teams to maintain industry-leading apps with mobile-focused, user-centric stability and performance monitoring.

Visit our sandbox or book a demo to see how Instabug can help your app

Seeing is Believing, Start Your 14-Day Free Trial

In less than a minute, integrate the Instabug SDK for iOS, Android, React Native, Xamarin, Cordova, Flutter, and Unity mobile apps