# How to Create an APK for Production Using Expo and Submit It to the Play Store

---

## Introduction

So, you've built a fantastic React Native app with Expo, and now you're eager to publish it on the Google Play Store. But wait—how do you generate a production-ready APK? Worry not! In this guide, I'll walk you through the entire process step by step.

## Step 1: Install Expo CLI (If Not Installed)

First, ensure you have **Expo CLI** installed. If not, run:

```bash
npm install -g expo-cli
```

Also, make sure you’re logged in to your Expo account:

```bash
expo login
```

## Step 2: Configure Your App

Before generating the APK, check your `app.json` or `app.config.js` file. Update the necessary details like the app name, package name, and version.

Example `app.json`:

```json
{
  "expo": {
    "name": "MyAwesomeApp",
    "slug": "myawesomeapp",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "android": {
      "package": "com.yourcompany.myawesomeapp",
      "versionCode": 1,
      "permissions": []
    }
  }
}
```

Ensure that `android.package` is unique (matching your domain, like `com.yourcompany.myapp`).

## Step 3: Build the APK File

Since Expo no longer supports **“expo build:android”**, you’ll need to use **EAS Build** instead. Run the following command:

```bash
npx expo install eas-cli
```

Then, initialize EAS:

```bash
eas build:configure
```

Now, to build an APK, use:

```bash
eas build -p android --profile preview
```

This will generate an APK for testing purposes. For a **Play Store-ready** build, use:

```bash
eas build -p android --profile production
```

Once the build is complete, you’ll get a **download link** for your APK/AAB file.

## Need to Convert .AAB to .APK?

If you want to generate an APK from an AAB file for testing, check out [**this guide**](./Convert-AAB-to-APK-on-Windows-and-macOS).

## Step 4: Sign Your APK (If Required)

Expo automatically handles signing, but if you want to manage keys manually, generate a keystore:

```bash
eas credentials
```

Follow the prompts to generate and download your keystore.

## Step 5: Test Your APK on a Physical Device

Download the APK file and install it on your phone:

```bash
adb install myapp.apk
```

Alternatively, share the download link generated by Expo.

## Step 6: Submit to Google Play Store

### 1\. Create a Google Play Developer Account

If you haven’t already, register at [Google Play Console](https://play.google.com/console) (one-time fee of $25).

### 2\. Create a New App

* Click **Create app**
    
* Set your app name, language, and category
    
* Choose **App** (not Game) and **Free/Paid** option
    

### 3\. Upload Your AAB File

Since Google now **requires AAB instead of APK**, make sure you generated the **AAB file** (`--profile production`). Upload it under **Production &gt; Create new release**.

### 4\. Complete Store Listing

* **App Name & Description**
    
* **Screenshots** (Minimum 2, for phones and tablets)
    
* **Feature Graphic** (1024x500 px)
    
* **Privacy Policy URL**
    

### 5\. Submit for Review

Once everything is set, click **Submit for Review**. Google will review your app (typically within 2–7 days).

## Conclusion

Congratulations! 🎉 You've successfully created a **production-ready APK** (or AAB) and submitted your app to the **Google Play Store**. Now, grab some chai ☕ and wait for your app to go live!

If you found this guide helpful, share it with your fellow developers. 🚀 Happy coding!
