expo-dev-client

expo/skills · updated Apr 8, 2026

$npx skills add https://github.com/expo/skills --skill expo-dev-client
0 commentsdiscussion
summary

Build custom Expo development clients for testing native code on physical devices via EAS Build or locally.

  • Only needed when using custom native modules, Apple targets (widgets, app clips), or third-party native code not in Expo Go; try Expo Go first with npx expo start
  • Supports cloud builds with automatic TestFlight submission or local builds on your machine, outputting .ipa (iOS) or .apk / .aab (Android) files
  • Requires eas.json configuration with a development profile that sets dev
skill.md

Use EAS Build to create development clients for testing native code changes on physical devices. Use this for creating custom Expo Go clients for testing branches of your app.

Important: When Development Clients Are Needed

Only create development clients when your app requires custom native code. Most apps work fine in Expo Go.

You need a dev client ONLY when using:

  • Local Expo modules (custom native code)
  • Apple targets (widgets, app clips, extensions)
  • Third-party native modules not in Expo Go

Try Expo Go first with npx expo start. If everything works, you don't need a dev client.

EAS Configuration

Ensure eas.json has a development profile:

{
  "cli": {
    "version": ">= 16.0.1",
    "appVersionSource": "remote"
  },
  "build": {
    "production": {
      "autoIncrement": true
    },
    "development": {
      "autoIncrement": true,
      "developmentClient": true
    }
  },
  "submit": {
    "production": {},
    "development": {}
  }
}

Key settings:

  • developmentClient: true - Bundles expo-dev-client for development builds
  • autoIncrement: true - Automatically increments build numbers
  • appVersionSource: "remote" - Uses EAS as the source of truth for version numbers

Building for TestFlight

Build iOS dev client and submit to TestFlight in one command:

eas build -p ios --profile development --submit

This will:

  1. Build the development client in the cloud
  2. Automatically submit to App Store Connect
  3. Send you an email when the build is ready in TestFlight

After receiving the TestFlight email:

  1. Download the build from TestFlight on your device
  2. Launch the app to see the expo-dev-client UI
  3. Connect to your local Metro bundler or scan a QR code

Building Locally

Build a development client on your machine:

# iOS (requires Xcode)
eas build -p ios --profile development --local

# Android
eas build -p android --profile development --local

Local builds output:

  • iOS: .ipa file
  • Android: .apk or .aab file

Installing Local Builds

Install iOS build on simulator:

# Find the .app in the .tar.gz output
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.app

Install iOS build on device (requires signing):

# Use Xcode Devices window or ideviceinstaller
ideviceinstaller -i build.ipa

Install Android build:

adb install build.apk

Building for Specific Platform

# iOS only
eas build -p ios --profile development

# Android only
eas build -p android --profile development

# Both platforms
eas build --profile development

Checking Build Status

# List recent builds
eas build:list

# View build details
eas build:view

Using the Dev Client

Once installed, the dev client provides:

  • Development server connection - Enter your Metro bundler URL or scan QR
  • Build information - View native build details
  • Launcher UI - Switch between development servers

Connect to local development:

# Start Metro bundler
npx expo start --dev-client

# Scan QR code with dev client or enter URL manually

Troubleshooting

Build fails with signing errors:

eas credentials

Clear build cache:

eas build -p ios --profile development --clear-cache

Check EAS CLI version:

eas --version
eas update

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.734 reviews
  • Kwame Harris· Dec 24, 2024

    I recommend expo-dev-client for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Layla Kapoor· Dec 4, 2024

    Solid pick for teams standardizing on skills: expo-dev-client is focused, and the summary matches what you get after install.

  • Yash Thakker· Nov 19, 2024

    Solid pick for teams standardizing on skills: expo-dev-client is focused, and the summary matches what you get after install.

  • Kwame Smith· Nov 15, 2024

    Useful defaults in expo-dev-client — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Dhruvi Jain· Oct 10, 2024

    expo-dev-client is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Alexander Diallo· Oct 6, 2024

    Registry listing for expo-dev-client matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Emma Liu· Sep 21, 2024

    We added expo-dev-client from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Ira Mensah· Sep 17, 2024

    Registry listing for expo-dev-client matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Oshnikdeep· Sep 13, 2024

    expo-dev-client fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Emma Sharma· Aug 12, 2024

    expo-dev-client reduced setup friction for our internal harness; good balance of opinion and flexibility.

showing 1-10 of 34

1 / 4