Skip to main content
Development builds can be created either locally on your machine or in the cloud using EAS Build. Both methods produce the same result - a debug build with expo-dev-client installed.

Prerequisites

1

Install expo-dev-client

This package provides the dev client UI and enhanced debugging tools.
2

Configure your app

Ensure your app.json has the required fields:
app.json

Local Builds

Local builds are created on your development machine using native build tools.

iOS Local Builds

Requires macOS with Xcode installed

Device Selection

The CLI will prompt you to select a device:

Automatic Signing

For physical devices, ensure you have a development team configured:

Android Local Builds

Requires Android Studio and Android SDK

Device Selection

Gradle Configuration

Customize the build in android/gradle.properties:
android/gradle.properties

Local Build Process

When you run npx expo run:ios or npx expo run:android:
1

Prebuild (if needed)

If native directories don’t exist, runs npx expo prebuild:
2

Install dependencies

Installs native dependencies:
  • iOS: Runs pod install
  • Android: Syncs Gradle dependencies
3

Build native project

Invokes native build tools:
  • iOS: xcodebuild with your scheme
  • Android: ./gradlew with specified variant
4

Install and launch

Installs the app on the selected device and launches it.

Cloud Builds with EAS Build

EAS Build creates your app in the cloud - no Xcode or Android Studio required.

Setup

1

Install EAS CLI

2

Configure EAS Build

This creates eas.json:
eas.json

Building

Build Profiles

Customize builds for different scenarios:

Resource Classes

Choose the right machine size:
eas.json
ClassCPURAMBuild Time
medium4 cores8 GB~10-15 min
large8 cores16 GB~5-8 min

Environment Variables

Pass secrets to builds:
eas.json
Set secrets:

Configuration

Build Properties

Customize native build settings with expo-build-properties:
app.json

Custom Plugins

Modify native projects with config plugins:
app.json

Managing Builds

Build Cache

Speed up builds by caching dependencies:
eas.json

Clean Builds

Force a clean build when needed:

Viewing Builds

Troubleshooting

iOS Build Fails: Signing Issues

Solution: Ensure you’re logged into the correct Apple account:

Android Build Fails: Out of Memory

Solution: Increase Gradle memory:
eas.json

Local Build: Command Not Found

Solution: Install Xcode command line tools:

Slow Builds

Improve build times:
  1. Use larger resource class (EAS Build)
  2. Enable caching
  3. Minimize dependencies
  4. Use Hermes engine:
app.json

Next Steps

Install on Devices

Install your development build on physical devices

Start Developing

Learn how to debug your app

Build Properties

Customize native build settings

Prebuild

Understand the prebuild workflow