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:
- An Expo account
- iOS Developer account (for App Store deployment)
- Google Play Console account (for Google Play Store deployment)
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.jsonfile atextra.eas.projectId
3. Configure EAS Build
Configure your build settings and credentials:
yarn build:configure
This command will:
- Create an
eas.jsonconfiguration 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