Skip to main content

How to Generate a React Native Release Build for Android

· 6 min read
Full Stack Developer
Last updated on May 6, 2026

react native release build android

React Native developers eventually need a signed Android release build. For Google Play, the normal production artifact is an Android App Bundle (.aab). APKs are still useful for local testing, sideloading, and some distribution workflows, but Google Play release planning should start with the app bundle.

This guide explains the modern release build flow for React Native Android apps.

Build a native mobile app in minutes with AI. Try an AI React Native / Expo app generator that scaffolds complete projects from prompts.

Try AI Free

Quick Answer

For a React Native Android release:

  1. Make sure the debug app runs.
  2. Configure a unique applicationId.
  3. Generate and protect an upload keystore.
  4. Configure Gradle release signing without committing passwords.
  5. Build an Android App Bundle with ./gradlew bundleRelease.
  6. Install or test a release APK locally with ./gradlew assembleRelease when needed.
  7. Upload the .aab to Google Play Console.

Use this article together with the React Native App Release Checklist before submission.

AAB vs APK

Use the right artifact:

ArtifactUse
.aabGoogle Play production, internal testing, closed testing, open testing.
.apkLocal install, manual QA, sideloading, device testing outside Google Play.

The React Native docs still explain signed Android builds, and Android Developers documents Android App Bundles as the publishing format for Google Play. In practice, build both when needed, but treat the .aab as the release artifact.

Prerequisites

Before generating a release build:

  • yarn android or npx react-native run-android works in debug mode.
  • Android Studio and the Android SDK are installed.
  • Java and Gradle are compatible with your React Native version.
  • android/app/build.gradle has the correct namespace and applicationId.
  • Demo app names, icons, Firebase files, and package IDs are replaced.
  • You reviewed the current Google Play target API level requirement.

If you are using an Instamobile app, start with Getting Started with React Native and configure Firebase before release.

Step 1. Generate an Upload Keystore

Create a keystore for Android release signing:

keytool -genkeypair -v \
-storetype JKS \
-keystore my-upload-key.keystore \
-alias my-key-alias \
-keyalg RSA \
-keysize 2048 \
-validity 10000

Back up:

  • keystore file;
  • store password;
  • key alias;
  • key password.

Do not commit the keystore or passwords to Git.

Step 2. Move the Keystore

Move the keystore into the Android app folder or another secure path used by your build system:

mv my-upload-key.keystore android/app/my-upload-key.keystore

Add keystore files to .gitignore if they are not already ignored:

*.keystore
*.jks

For team projects, store signing credentials in a password manager or CI secret store.

Step 3. Store Signing Values Outside Gradle Code

Use android/gradle.properties for local development values or CI environment variables for automated builds.

Example local values:

MYAPP_UPLOAD_STORE_FILE=my-upload-key.keystore
MYAPP_UPLOAD_KEY_ALIAS=my-key-alias
MYAPP_UPLOAD_STORE_PASSWORD=replace_me
MYAPP_UPLOAD_KEY_PASSWORD=replace_me

Keep private values out of committed source control. For CI, inject these as secrets.

Step 4. Configure Release Signing

In android/app/build.gradle, configure the release signing config:

android {
signingConfigs {
release {
if (project.hasProperty('MYAPP_UPLOAD_STORE_FILE')) {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
}
buildTypes {
release {
signingConfig signingConfigs.release
minifyEnabled enableProguardInReleaseBuilds
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
}

React Native templates may already include a release signing block. If so, adapt the existing pattern instead of duplicating it.

Mega Bundle Sale is ON! Get ALL of our React Native codebases at 90% OFF discount 🔥

Get the Mega Bundle

Step 5. Build an Android App Bundle

From the project root:

cd android
./gradlew bundleRelease

The output is usually:

android/app/build/outputs/bundle/release/app-release.aab

Upload this .aab to Google Play Console.

Step 6. Build a Release APK for Local Testing

For a local installable APK:

cd android
./gradlew assembleRelease

The output is usually:

android/app/build/outputs/apk/release/app-release.apk

Install it on a device:

adb install android/app/build/outputs/apk/release/app-release.apk

Test the release build from a clean install. Debug builds can hide issues that only appear in release mode.

Step 7. Test Before Uploading

Before uploading to Google Play:

  • install the release APK on a real Android device;
  • sign in with a real production Firebase project;
  • test the main user flow;
  • test media upload if the app uses storage;
  • test push notification registration if included;
  • verify app icon, app name, splash screen, and package name;
  • check network calls point to production-ready services;
  • verify no demo credentials remain;
  • review privacy policy and Google Play Data Safety answers.

For a full release gate, use React Native App Release Checklist.

Build a native mobile app in minutes with AI. Try an AI React Native / Expo app generator that scaffolds complete projects from prompts.

Try AI Free

Common Build Problems

Keystore credentials are missing

If Gradle cannot find signing properties, check android/gradle.properties, CI secrets, and storeFile paths.

Release build crashes but debug works

Check minification and ProGuard/R8 rules. Temporarily disable minification to confirm whether the crash is caused by shrinking, then add the correct keep rules.

Duplicate resources or stale generated assets

Clean Android build output:

cd android
./gradlew clean

Then rebuild.

Google Play rejects the upload

Check:

  • app bundle format;
  • package name;
  • version code;
  • signing key;
  • target API requirement;
  • permissions and Data Safety form;
  • 64-bit/native library requirements;
  • store listing assets.

Google Play requirements change over time, so use the official Play Console and Android Developers docs as the source of truth before submission.

Android Studio Alternative

You can also create a signed build from Android Studio:

  1. Open the android folder.
  2. Select Build > Generate Signed Bundle / APK.
  3. Choose Android App Bundle for Google Play.
  4. Select or create the upload key.
  5. Choose the release variant.
  6. Generate the signed artifact.

Command-line builds are easier to document and automate, but Android Studio is useful when debugging Gradle, SDK, or signing setup.

Useful Official References

Bottom Line

For Google Play, build and upload a signed Android App Bundle. Keep APK builds for local release testing, protect your signing keys, verify the app on a real device, and do not submit until branding, Firebase, privacy, and core user flows are production-ready.

Looking for a custom mobile application?

Our team of expert mobile developers can help you build a custom mobile app that meets your specific needs.

Get in Touch