Skip to main content

Deploy Your Expo App

This guide will walk you through setting up EAS (Expo Application Services) for deploying your Expo app to app stores and over-the-air updates.

Prerequisites

Before you begin, make sure you have:

1. Login to Expo

Authenticate with your Expo account using the yarn command:

yarn eas:login

This command will:

  • Install EAS CLI if not already installed
  • Authenticate with your Expo account
  • Securely store your credentials for future use

2. Initialize EAS in Your Project

Set up EAS for your project:

yarn eas:init

This command will:

  • Create a new project on your Expo account if one does not already exist, and link it
  • If the project already exists, link it to your Expo account

You can see your project ID in your app.json file at extra.eas.projectId

3. Configure EAS Build

Configure your build settings and credentials:

yarn build:configure

This command will:

  • Create an eas.json configuration file
  • Set up build profiles (development, preview, production)
  • Configure distribution settings for each platform

4. Build Your App

Now you can build your app for different platforms and environments:

Note: if you wish to run your app in a physical device, your device must be connected to the same WIFI

Android Builds

Development Build

yarn build:android:dev

This command will:

  • Create a development build for Android
  • Include debugging tools and development features like Hot reloading
  • Generate an APK for internal testing
  • Use development signing certificates

Preview Build

yarn build:android:preview

This command will:

  • Create a preview build for internal testing and QA
  • Generate an APK for easy sharing with testers
  • Use preview signing certificates
  • Optimize for testing without development overhead
  • Include production-like performance characteristics

Production Build

yarn build:android:prod

This command will:

  • Create a production-ready build for Google Play Store
  • Generate an AAB (Android App Bundle) file
  • Use production signing certificates
  • Optimize for performance and size
  • Remove all debugging tools and development features

iOS Builds

Development Build

yarn build:ios:dev

This command will:

  • Create a development build for iOS
  • Include debugging tools and development features like Hot reloading
  • Generate an IPA for internal testing
  • Use development provisioning profiles

Preview Build

yarn build:ios:preview

This command will:

  • Create a preview build for TestFlight and internal testing
  • Generate an IPA ready for TestFlight upload
  • Use preview provisioning profiles
  • Optimize for testing without development overhead
  • Include production-like performance characteristics

Production Build

yarn build:ios:prod

This command will:

  • Create a production-ready build for App Store
  • Generate an IPA file for App Store submission
  • Use production provisioning profiles and certificates
  • Optimize for performance and size
  • Remove all debugging tools and development features

5. Submit to App Stores

After building your app, you can submit it to the respective app stores:

Submit to Google Play Store

yarn submit:android

This command will:

  • Upload your production AAB file to Google Play Console
  • Submit the app for review (if configured)
  • Use your configured Google Play service account credentials
  • Automate the submission process to Google Play Console

Submit to Apple App Store

yarn submit:ios

This command will:

  • Upload your production IPA file to App Store Connect
  • Submit the app for review (if configured)
  • Use your configured Apple Developer credentials
  • Automate the submission process to App Store Connect

Quick Reference

Complete Workflow

Here's the complete yarn command workflow for EAS deployment:

# 1. Login to Expo
yarn eas:login

# 2. Initialize EAS in your project
yarn eas:init

# 3. Configure build settings and credentials
yarn build:configure

# 4. Build for Android
yarn build:android:dev # Development build
yarn build:android:preview # Preview build
yarn build:android:prod # Production build

# 5. Build for iOS
yarn build:ios:dev # Development build
yarn build:ios:preview # Preview build
yarn build:ios:prod # Production build

# 6. Submit to app stores
yarn submit:android # Submit to Google Play Store
yarn submit:ios # Submit to Apple App Store

Resources