DEV Community

Cover image for How To Generate apk Using React Native Expo
Chinmay Mhatre
Chinmay Mhatre

Posted on • Edited on

How To Generate apk Using React Native Expo

Introduction

Hey everyone! Here is a quick article on how to generate an apk for your react native expo app.


Install expo CLI

I assume, if you are reading a blog on exporting the app , you have already installed the expo CLI 👀.

To check if you have expo CLI install run



 expo -V


Enter fullscreen mode Exit fullscreen mode

In the command line, If you get a version number that indicates you have expo install.

image

In case you don't. You can install it using npm.

We also need the eas build tools



npm install --global expo-cli eas-cli


Enter fullscreen mode Exit fullscreen mode

Create expo account and login

First requirement for generating the apk file is creating an expo account.
Create an account here

expologin

After logging in, you will be redirected to your expo dashboard.

image


Login to expo CLI

  • Open cmd
  • Login to expo account using the command : ```

expo login

![login](https://user-images.githubusercontent.com/51131670/126795309-6f36664b-4edd-4bab-9710-d332635f6dea.PNG)
To check which user you are logged in with, use the command
Enter fullscreen mode Exit fullscreen mode

expo whoami

![image](https://user-images.githubusercontent.com/51131670/127814587-67a4f021-fd70-4b9f-943c-b635e67ba5bd.png)

---

## Edit Config
By default the eas build tool will give you a playstore build file.

If you want a .apk file you need to create a `eas.json` file and add a `buildType` as `apk`.


Enter fullscreen mode Exit fullscreen mode

{
"build": {
"preview": {
"android": {
"buildType": "apk"
}
},
"preview2": {
"android": {
"gradleCommand": ":app:assembleRelease"
}
},
"preview3": {
"developmentClient": true
},
"production": {}
}
}



You can check out more about the eas build tool [here](https://docs.expo.dev/build/introduction/).

---

## Build
Open cmd in your app directory.

Run the build command 
```sh


eas build -p android --profile preview


Enter fullscreen mode Exit fullscreen mode

Wait for the build to complete...


Download apk

After the build is complete you can go to the builds section in your dashboard and download the apk.

apk


Hope you found this useful. See you in the next one!

Top comments (36)

Collapse
 
aryaweb profile image
Arya Shreyas

Thanks man! Easy and simple.

Collapse
 
amahuika profile image
amahuika

Hey, Great post thanks for sharing!.

Collapse
 
mrjeanmichell profile image
Jean Michell

Loved it! thank you.

Collapse
 
irtaza_ahmad_5ee3392c5c8b profile image
Irtaza Ahmad

To generate an APK using React Native Expo, follow these simple steps. It's a straightforward process that I also used to create my Wegocup site, which offers free APK downloads.

Steps to Generate APK Using Expo:

  1. Install Expo CLI Make sure you have Expo CLI installed by running the command:
   npm install -g expo-cli
Enter fullscreen mode Exit fullscreen mode
  1. Initialize Your Project Create a new React Native project using Expo:
   expo init your-project-name
Enter fullscreen mode Exit fullscreen mode
  1. Configure app.json
    Update the app.json file with your app details, including the app name, version, and Android-specific configurations.

  2. Build Your App
    Run the following command to build the APK:

    bash
    eas build -p android
    This requires the Expo Application Services (EAS). If it's your first time, follow the prompts to configure your project.

  3. Login and Publish
    Log in to your Expo account and publish the build. Expo will generate a URL for downloading your APK.

  4. Download the APK

    Once the build is complete, download your APK from the provided link.

Why I Chose React Native Expo for Wegocup:
Expo simplifies the app development process by providing tools and libraries that eliminate the need for extensive native configurations. For my Wegocup site, it allowed me to quickly create an app that supports a seamless APK download experience while keeping the app lightweight and efficient.

With Expo, generating an APK is quick, efficient, and beginner-friendly perfect for projects like Wegocup or any other app idea you have in mind!

Collapse
 
chris_levis_d1e25f4e33755 profile image
Chris Levis

"Generating an APK with React Native Expo is pretty straightforward if you use the expo build:android command, but remember to switch to EAS Build for better customization. Speaking of custom apps, have you come across Bad Parenting Mr. Red Face? It's a creative game APK that showcases how unique app development can lead to an engaging user experience!"

Collapse
 
herry_jack_65a60c2e4b6915 profile image
Herry jack

To generate the Sky Club APK, start by accessing reliable tools and platforms designed for APK development. Ensure you have the necessary software and follow best practices to create a secure and optimized application. Focus on maintaining a user-friendly interface and seamless functionality to provide the best experience. Once the APK is ready, test it thoroughly to ensure quality and performance. With the right approach, you can create a remarkable Sky Club APK that captivates users and delivers exceptional entertainment!

Collapse
 
irtaza_ahmad_5ee3392c5c8b profile image
Irtaza Ahmad

Generating an APK using "React Native Expo" is simple, and it's a great way to create apps like Sportzfy APK. Here’s how you can do it:

  1. Install Expo CLI Run the command:
   npm install -g expo-cli
Enter fullscreen mode Exit fullscreen mode
  1. Start Your Project Create a new project:
   expo init your-project-name
Enter fullscreen mode Exit fullscreen mode
  1. Build the APK Use Expo Application Services (EAS) to build the APK:
   eas build -p android
Enter fullscreen mode Exit fullscreen mode
  1. Download Your APK Once the build is done, download your APK from the Expo dashboard.

Using React Native Expo makes app development easy and efficient. It’s one of the reasons Sportzfy Cricket APK delivers such a smooth and user-friendly experience for cricket lovers worldwide. If you’re creating a sports app or any APK, this is a great tool to use.

Collapse
 
dipeshsah profile image
Info Comment hidden by post author - thread only accessible via permalink
Dipesh Kumar Sah

It's not working on EXPO version 45.0.0. you have to give another method to create apk using expo.

Collapse
 
chinmaymhatre profile image
Chinmay Mhatre

Updated the blog for the new method

Collapse
 
ahmadnoor4050 profile image
AhmadNoor4050

Using EXPO 45 butt know 47verion how to create APK.

Collapse
 
chinmaymhatre profile image
Chinmay Mhatre

I believe this methods works with version 47

Collapse
 
mehdinoori5233 profile image
Info Comment hidden by post author - thread only accessible via permalink
MehdiNoori5233

Hi There.
After I runned this command: "expo build:android" in the VS Code,
I see this error:
"Uploading JavaScript bundles
read ECONNRESET
Error: read ECONNRESET
at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20)
"

Please give me a solution.

Collapse
 
chinmaymhatre profile image
Chinmay Mhatre

Hey,
Expo sdk recently had an update. A new cli has been put in place to build apks. you can take a look at this : expo.dev/eas

Collapse
 
azharuddin1801734 profile image
azharuddin1801734

i am facing this issues or errors during follow these steps for generate apk using expo
can anyone help me for solve these problems during generate apk using expo in react native project

Running 'gradlew :app:assembleRelease' in /home/expo/workingdir/build/android

Downloading services.gradle.org/distributions/...

10%

20%.

30%.

40%.

50%.

60%.

70%.

80%.

90%.

100%

Welcome to Gradle 7.5.1!

Here are the highlights of this release:

  • Support for Java 18

  • Support for building with Groovy 4

  • Much more responsive continuous builds

  • Improved diagnostics for dependency resolution

For more details see docs.gradle.org/7.5.1/release-note...

To honour the JVM settings for this build a single-use Daemon process will be forked. See docs.gradle.org/7.5.1/userguide/gr....

Daemon will be stopped at the end of the build

[stderr]
FAILURE: Build failed with an exception.

[stderr]

  • Where:

[stderr]
Script '/home/expo/workingdir/build/node_modules/@react-native-community/cli-platform-android/native_modules.gradle' line: 250

[stderr]

  • What went wrong:

[stderr]
A problem occurred evaluating script.

[stderr]

[stderr]
Calling [node, /home/expo/workingdir/build/node_modules/@react-native-community/cli/build/bin.js, config] finished with an exception. Error message: groovy.json.JsonException: Unable to determine the current character, it is not a string, number, array, or object

[stderr]

[stderr]
The current character read is 'E' with an int value of 69

[stderr]
Unable to determine the current character, it is not a string, number, array, or object

[stderr]
line number 1

[stderr]
index number 0

[stderr]
Error: Package name not found in /home/expo/workingdir/build/android/app/src/main/AndroidManifest.xml at Object.projectConfig (/home/expo/workingdir/build/node_modules/@react-native-community/cli-platform-android/build/config/index.js:74:11) at Object.get project as project at filterConfig (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/commands/config/config.js:13:20) at Object.func (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/commands/config/config.js:27:32) at Command.handleAction (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/index.js:192:23) at Command.listener (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/commander/index.js:315:8) at Command.emit (node:events:513:28) at Command.parseArgs (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/commander/index.js:651:12) at Command.parse (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/commander/index.js:474:21) at setupAndRun (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/index.js:271:24)info Run CLI with --verbose flag for more details.

[stderr]
^. Output: Error: Package name not found in /home/expo/workingdir/build/android/app/src/main/AndroidManifest.xml at Object.projectConfig (/home/expo/workingdir/build/node_modules/@react-native-community/cli-platform-android/build/config/index.js:74:11) at Object.get project as project at filterConfig (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/commands/config/config.js:13:20) at Object.func (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/commands/config/config.js:27:32) at Command.handleAction (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/index.js:192:23) at Command.listener (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/commander/index.js:315:8) at Command.emit (node:events:513:28) at Command.parseArgs (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/commander/index.js:651:12) at Command.parse (/home/expo/workingdir/build/node_modules/@react-native-community/cli/node_modules/commander/index.js:474:21) at setupAndRun (/home/expo/workingdir/build/node_modules/@react-native-community/cli/build/index.js:271:24)info Run CLI with --verbose flag for more details.

[stderr]

  • Try:

[stderr]

Run with --stacktrace option to get the stack trace.

[stderr]

Run with --info or --debug option to get more log output.

[stderr]

Run with --scan to get full insights.

[stderr]

[stderr]
BUILD FAILED in 18s

Error: Gradle build failed with unknown error. See logs for the "Run gradlew" phase for more information.

please provide me solutions of these errors

Image description

Collapse
 
anujawas profile image
Anuj Awasthi

I am Calling an Inside my expo App which is being successfully implemented, But same is not being called in APK. Can you help me with that?

Collapse
 
ashwith25 profile image
Ashwith Poojary

Very well explained! 🙌

Some comments have been hidden by the post's author - find out more