How to submit for review your iOS and Android applications with EAS and React Native
Tags: ios, android, eas, reactnative
Published: 2023-01-26 10:43:30

With EAS you can submit for review your React Native app, directly from terminal. No need to do it manually from the stores dashboards.

## Prerequisites
For both iOS and Android you should have filled in the required fields and have created a new app from the dashboards. You can follow [this guide](https://dev.to/alexcoding42/how-to-submit-your-mobile-application-on-app-store-408i) to understand how to proceed for iOS, and [this guide](https://dev.to/alexcoding42/how-to-submit-your-mobile-application-on-play-store-1l8i) for Android.

Also, you must have installed the EAS CLI. You can refer to [this guide](https://docs.expo.dev/build/setup/) to see how to proceed

## iOS
For iOS you need to configure the `eas.json` file as follow
```
"submit": {
    "production": {
      "ios": {
        "appleId": "your.apple.id.username",
        "ascAppId": "123456789",
        "appleTeamId": "1AB2C3D45E"
      }
    }
  }
```
**Apple ID** is the username of your Apple Developer Account, the email that you use to connect to your Apple account

**ascAppID** is the App Store Connect unique application Apple ID number. You can find it under App Information section when you created your app on App Store Connect

![ascAppID](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ztpqzi8ingrlumnmqt4b.png)

**appleTeamId** is your Apple Developer Team ID. You can find it under you Profile settings

![apple team ID](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/27rv5uo1koj9bwms899f.png)

When `eas.json` file is configured correctly, open a terminal and run
```
eas submit --platform ios
```

That's all your app should be submitted for review. You can refer to the [official documentation](https://docs.expo.dev/submit/ios/) to get more information and configuration.

## Android
For Android the steps are different, you need to create a [Google Service Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts) and download its JSON private key

### Prerequisite
Your Android app must have been submitted manually once before.

### Create a Google Service Account
You need to connect to your [Google Cloud Console](https://console.cloud.google.com/), select your project and search for the *Services Accounts* section, then click `Create Service Account`

![create service account](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mxh6yws8qe6ouz4zzsxh.png)

You can fill in the required fields as follow

![service account details](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e3oym11u5kuh7rsqloyi.png)

Then you need to select a role for your service account. Choose `Service Account User` and click `Done` button.
![role](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fnbher0hijoq5y5dn9u6.png)

![service account user](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qrb95s2p1ntthftm2f33.png)

When you are back on the services accounts dashboard you need to create a new key for your service account

![new key](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6zz7t63khekljada59ld.png)

Then create a new key
![new key](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ti1hczwjpuvtz1s4m7kn.png)

And choose JSON format

![json format](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vf75fc2qc8khx6wogqun.png)

You can download the json file and rename it as you want. I recommend name it *service_account.json* for better clarity.

### Start the submission
Now that you have the JSON service account file you need to like it to your project. At the root of your project upload your *service account json file*

And configure your `eas.json` file as follow

```
"submit": {
    "production": {
      "android": {
        "serviceAccountKeyPath": "./service_account.json",
        "track": "production"
      }
    }
  }
```
> **Warning**
> Don't forget to add *service_account.json* file to your .gitignore !

You can now submit your app to Play Store
```eas submit --platform android```

You can refer to the [official documentation](https://docs.expo.dev/submit/android/) for more information and configuration

## Final eas.json file
Your final eas.json file should look like this
![eas config](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/imagh1beg3vneaov97w6.png)