Generated banner for Expo Dev Client
Generated logo for Expo Dev Client

Expo Dev Client

OpenAIOfficialCreated by Expo TeamDistributed by OpenAI

  • Skill
  • Tool integration
  • Software development
  • MIT
  • No issues found

From the author

Build and distribute Expo development clients locally or via TestFlight
— the description by Expo Team

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

This skill provides instructions for creating custom Expo development clients, which are necessary when an application requires custom native code, Apple targets, or third-party native modules not included in the standard Expo Go app. It covers configuration via eas.json, building for TestFlight, performing local builds, and managing the development client lifecycle.

What it does

  • Configures EAS Build profiles for development client creation.
  • Automates the build and submission process for iOS TestFlight.
  • Provides commands for local builds on iOS and Android.
  • Explains how to install and run custom development clients on physical devices and simulators.
  • Offers troubleshooting steps for build, signing, and caching issues.
  • Details how to connect the development client to a local Metro bundler.

When to use it

  • When your application requires custom native code or local Expo modules.
  • When you need to implement Apple targets like widgets or app clips.
  • When you need to use third-party native modules that are not supported in Expo Go.
  • When you need to test specific branches of your app in a custom native environment.

Advantages

  • Enables testing of custom native code on physical devices.
  • Streamlines the distribution process to TestFlight.
  • Provides a consistent development experience across different native configurations.
  • Offers flexible options for both cloud-based and local build workflows.

Usage examples

“How do I build an iOS development client and send it to TestFlight?”
The agent provides the command 'eas build -p ios --profile development --submit' and explains the subsequent steps for downloading and launching the app from TestFlight.
“I need to build a development client locally for Android, what is the command?”
The agent provides the command 'eas build -p android --profile development --local' and explains how to install the resulting APK.

Install

  1. Download the skill as a ZIP:

    https://mp-staging.autogineer.com/agent-skills/openai/expo-dev-client/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip expo-dev-client.zip -d .agents/skills

Documentation by Expo Team

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

Files

Requirements and compatibility

Written for: OpenAI Codex

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Needs Node.js

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Created by
Expo Team
Publisher
OpenAI (Official)
Distributed by
OpenAI
Source
openai/plugins · plugins/expo/skills/expo-dev-client · commit d420d13
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from plugins/expo/LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Expo Team or OpenAI.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download expo-dev-client.zip