Skip to main content

EAS CLI — Common Commands Cheatsheet

Tip: Keep your CLI updated to avoid warnings.

npm install -g eas-cli

🔧 Setup & Configuration

# Login to your Expo account
eas login

# Logout
eas logout

# Check who is logged in
eas whoami

# Initialize EAS in your project (creates eas.json)
eas build:configure

🏗️ Build

# Build for Android (uses "production" profile by default)
eas build --platform android

# Build for iOS
eas build --platform ios

# Build for both platforms
eas build --platform all

# Build using a specific profile
eas build --platform android --profile development
eas build --platform android --profile preview
eas build --platform android --profile production

# Build locally (on your machine, not EAS servers)
eas build --platform android --local

# List all previous builds
eas build:list

# Check build status/details
eas build:view

📋 Build Profiles, Output Format, and Expo Environment Variables

Clarification: In eas.json, these two settings do different things:

  • "android": { "buildType": "apk" } → controls the Android output format (APK instead of AAB).
  • "environment": "preview" → tells EAS to load environment variables from the matching Expo dashboard environment on expo.dev.
{
"build": {
"preview": {
"environment": "preview",
"android": {
"buildType": "apk"
}
}
}
}

You can also set "environment" for other profiles like "development" and "production" to read their respective variables from Expo.


🚀 Submit (Upload to Store)

# Submit Android build to Google Play Store
eas submit --platform android

# Submit iOS build to Apple App Store
eas submit --platform ios

# Submit a specific build by ID
eas submit --platform android --id <build-id>

🔄 Update (OTA Updates)

# Publish an OTA update to a channel
eas update --channel production --message "Fix login bug"

# Publish to a specific branch
eas update --branch main --message "UI improvements"

# List all updates
eas update:list

# View details of a specific update
eas update:view <update-id>

# Roll back to a previous update
eas update:roll-back-to-embedded

🔐 Secrets & Environment Variables

# List all secrets for the project
eas secret:list

# Create a new secret
eas secret:create --scope project --name MY_SECRET --value "your-value"

# Delete a secret
eas secret:delete --name MY_SECRET

# List environment variables
eas env:list

📱 Device Management

# Register a device for development builds (iOS)
eas device:create

# List registered devices
eas device:list

# Delete a registered device
eas device:delete

🔑 Credentials

# Manage credentials interactively
eas credentials

# View Android credentials
eas credentials --platform android

# View iOS credentials
eas credentials --platform ios

👤 Account & Project

# Link project to your EAS account
eas init

# View project info
eas project:info

# Open project on expo.dev in browser
eas open

Quick Reference

TaskCommand
Logineas login
Android dev buildeas build --platform android --profile development
Android prod buildeas build --platform android --profile production
OTA updateeas update --channel production --message "..."
Submit to Play Storeeas submit --platform android
Add a secreteas secret:create --scope project --name KEY --value val
List secretseas secret:list
List env varseas env:list
View buildseas build:list