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. **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:
npx expo start. If everything works, you don't need a dev client.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": {} } }
developmentClient: true - Bundles expo-dev-client for development buildsautoIncrement: true - Automatically increments build numbersappVersionSource: "remote" - Uses EAS as the source of truth for version numberseas build -p ios --profile development --submit# iOS (requires Xcode) eas build -p ios --profile development --local # Android eas build -p android --profile development --local
.ipa file.apk or .aab file# 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
# Start Metro bundler npx expo start --dev-client # Scan QR code with dev client or enter URL manually
eas credentialseas build -p ios --profile development --clear-cacheeas --version eas update