1. Introduction
To build an Android APK for an Expo project, you must use EAS Build (Expo Application Services).
expo build command has been deprecated and is no longer supported.
EAS Build is the official solution to generate:
- APK (for testing and internal sharing)
- AAB (for Google Play Store submission)
Windows users may need to set the following environment variable to avoid OpenSSL errors:
setx NODE_OPTIONS "--openssl-legacy-provider"
2. Prerequisites
- Expo account
- Node.js installed
- EAS CLI installed globally
- Terminal opened in Expo project root
npm install -g eas-cli
3. Step-by-Step Process to Create APK
Step 1: Login to Expo
eas login
Step 2: Configure EAS Build
eas build:configure
eas.json file.
Step 3: Configure eas.json for APK
{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"android": {
"buildType": "apk"
}
},
"preview": {
"distribution": "internal",
"android": {
"buildType": "apk"
}
},
"production": {}
}
}
Step 5: Change App Name
To change the app name in a React Native Expo project and generate a new APK, update the Expo configuration file. In the Managed workflow, Expo automatically applies these changes during the next build.
Update Configuration
Open app.json (or app.config.js) and update the name property.
{
"expo": {
"name": "New App Name",
"slug": "your-app-slug",
"version": "1.0.1",
"android": {
"package": "com.yourname.newname"
}
}
}
android.package value creates a completely new app.
If you only want to change the visible app name under the icon, update only the name field.
Step 6: Change App Logo / Icon
For a React Native Expo project in 2026, the recommended app icon size is 1024 × 1024 pixels. Expo uses this high-resolution image to automatically generate all required sizes.
{
"expo": {
"icon": "./assets/images/icon.png",
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/images/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
}
}
}
}
Step 7: Download APK
- Open the provided build link
- Download the APK
- Install it on a physical device or emulator
Step 4: Run Build Command
Development APK
eas build --platform android --profile development
Preview / Testing APK (Recommended)
eas build --platform android --profile preview
Production AAB (Play Store)
eas build --platform android --profile production
Step 5: Download APK
- Open the provided build link
- Download the APK
- Install on device or emulator
4. Alternative: Local APK Build
You can build APK locally without Expo cloud.
eas build --platform android --local
dist/ folder.
5. Problems Faced & Solutions
Project config: Slug for project identified by "extra.eas.projectId" (mahsua-age-calculator) does not match the "slug" field (age-plus).
Solution:
- Keep the Existing Project: Change slug back to
mahsua-age-calculatorbut keep the name as "Age +". - Start a New Project: Delete the
projectIdline fromapp.jsonand run the build again.
Solution:
npx expo-doctor
expo doctorSolution:
npx expo-doctor
Solution: Create
assets/icon.pngRecommended size: 1024 × 1024
.expo directory warningSolution: Add to
.gitignore:
.expo/
Explanation: Normal for Expo apps. AAB size is much smaller.
6. Conclusion
- EAS Build is mandatory for Expo Android builds
- Most errors come from configuration or missing assets
- Always run
expo-doctorbefore building - Use APK for testing, AAB for Play Store