Skip to main content

Building for Android

Create an Android build using Expo Application Services (EAS).

Prerequisites

  • Node.js 18+
  • Expo account — Sign up at expo.dev
  • EAS CLI installed: npm install -g eas-cli

Configure EAS

In the mobile/ directory:

eas login
eas build:configure

This creates/updates eas.json with build profiles.

Build Profiles

The eas.json file defines build configurations:

{
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"autoIncrement": true
}
}
}

Creating a Build

APK (for direct installation)

cd mobile
eas build --platform android --profile preview

AAB (for Google Play)

cd mobile
eas build --platform android --profile production

Build Process

  1. EAS uploads your project to Expo's build servers
  2. The build runs in the cloud (~10-20 minutes)
  3. When complete, you'll get a download link

Installing the APK

Direct install

  1. Download the APK from the EAS build link
  2. Transfer to the Android device
  3. Enable Install from Unknown Sources in device settings
  4. Open and install the APK

Internal distribution

  1. Register device UDIDs with eas device:create
  2. Build with --profile preview
  3. Share the install link with testers

Google Play Store

First submission

  1. Create a Google Play Developer account ($25 one-time fee)
  2. Create a new app in Google Play Console
  3. Upload the AAB file
  4. Fill in store listing, screenshots, and privacy policy
  5. Submit for review

Subsequent updates

  1. Build a new AAB with incremented version
  2. Upload to Google Play Console
  3. Submit for review

Version Management

In mobile/app.json:

{
"expo": {
"version": "1.1.0",
"android": {
"versionCode": 2
}
}
}
  • version — User-facing version string
  • versionCode — Must increment for each Play Store upload