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

Abhishek AnandAbhishek Anand
3 min read

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:

npm install -g expo-cli

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

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:

{
  "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:

npx expo install eas-cli

Then, initialize EAS:

eas build:configure

Now, to build an APK, use:

eas build -p android --profile preview

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

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.

Step 4: Sign Your APK (If Required)

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

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:

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 (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 > 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!

1
Subscribe to my newsletter

Read articles from Abhishek Anand directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Abhishek Anand
Abhishek Anand

Trying to make "Hello World" the new "abc"; Strong in design and integration with intuitive problem-solving skills. Proficient in JAVA, C, PYTHON, JAVASCRIPT, and SQL. Passionate about implementing and launching new projects. Ability to translate business requirements into technical solutions. Looking to start the career as an entry-level software engineer with a reputed firm driven by technology. Technology excites me and I am always in awe of the change it drives in the world. Certain skills that I have worked with include Data Structures and Algorithms (Java), Web Development (NodeJs, MongoDB, MySQL), Linux OS (with Go) & Machine Learning (Python). And what I might lack in skills I make up for with my determination to learn. Outside of tech, I am a tea lover, an avid actor and have spent my college days exploring theatre.