Skills
Chapter 12 of 23
Framework (OSS). Build and distribute Expo development clients locally or via TestFlight for internal testing.
2 minutes · 434 words · 10 sections
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.
Free locally; cloud builds are paid.
expo-dev-clientitself is open source and building locally is free. Building or distributing via EAS Build/TestFlight uses your EAS plan’s build minutes and needs a paid Apple Developer account for device/TestFlight distribution. See https://expo.dev/pricing (opens in a new tab).
Development clients are the recommended setup for any real or production app. Expo Go is a playground for learning and quick experiments with the native libraries it bundles; most apps outgrow it and move to a development client. See Expo Go vs. development builds (opens in a new tab) for the full reasoning.
You need a dev client ONLY when using:
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 buildsautoIncrement: true - Automatically increments build numbersappVersionSource: "remote" - Uses EAS as the source of truth for version numbersBuild iOS dev client and submit to TestFlight in one command:
eas build -p ios --profile development --submitThis will:
After receiving the TestFlight email:
Build a development client on your machine:
# iOS (requires Xcode)
eas build -p ios --profile development --local
# Android
eas build -p android --profile development --localLocal builds output:
.ipa file.apk or .aab fileInstall iOS build on simulator:
# Find the .app in the .tar.gz output
tar -xzf build-*.tar.gz
xcrun simctl install booted ./path/to/App.appInstall iOS build on device (requires signing):
# Use Xcode Devices window or ideviceinstaller
ideviceinstaller -i build.ipaInstall Android build:
adb install build.apk# iOS only
eas build -p ios --profile development
# Android only
eas build -p android --profile development
# Both platforms
eas build --profile development# List recent builds
eas build:list
# View build details
eas build:viewOnce installed, the dev client provides:
Connect to local development:
# Start Metro bundler
npx expo start --dev-client
# Scan QR code with dev client or enter URL manuallyBuild fails with signing errors:
eas credentialsClear build cache:
eas build -p ios --profile development --clear-cacheCheck EAS CLI version:
eas --version
eas updateIf you encounter errors, misleading or outdated information in this skill, report it so Expo can improve:
npx --yes submit-expo-feedback@latest --category skills --subject "expo-dev-client" "<actionable feedback>"Only submit when you have something specific and actionable to report. Include as much relevant context as possible. If an AI agent repeatedly failed or the user had to take over an Expo task, load the expo-skill-feedback skill and follow its eval-candidate flow instead of reusing the command above.
Install this repository
npx skills add expo/skills/plugin marketplace add expo/skillsSkills install per repository, not per chapter — the CLI has no documented per-skill form, so we do not print one.
Framework (OSS). Build and distribute Expo development clients locally or via TestFlight for internal testing. For production TestFlight releases and store submission, use the eas-app-stores skill.
The verbatim description from this skill’s front matter — the string an agent matches on to decide whether to load it.
plugins/expo/skills/expo-dev-client/SKILL.mdmain, last pushed 7 August 2026.SKILL.md, not by matching a directory convention. 3 distinct layouts observed: .claude/skills/*/SKILL.md, plugins/expo-experiments/skills/*/SKILL.md, plugins/expo/skills/*/SKILL.md..claude-plugin/marketplace.json by Expo Team, declaring 5 plugins. It is read for editorial metadata only — never as the skill index, which is always the repository tree./expo/skills.md, and each chapter at its own .md URL.1 file · 331 B
Everything this skill ships beside its prose. All of it is set here, as a subchapter of chapter 12.
Everything else published alongside the skill.