- Created a new PostCSS configuration file to integrate Tailwind CSS. - Added a skills lock file containing various Expo skills with their respective source and computed hashes.
165 lines
3.4 KiB
Markdown
165 lines
3.4 KiB
Markdown
---
|
|
name: expo-dev-client
|
|
description: Build and distribute Expo development clients locally or via TestFlight
|
|
version: 1.0.0
|
|
license: MIT
|
|
---
|
|
|
|
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:
|
|
|
|
```json
|
|
{
|
|
"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:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# 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):
|
|
|
|
```bash
|
|
# Use Xcode Devices window or ideviceinstaller
|
|
ideviceinstaller -i build.ipa
|
|
```
|
|
|
|
Install Android build:
|
|
|
|
```bash
|
|
adb install build.apk
|
|
```
|
|
|
|
## Building for Specific Platform
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
# Start Metro bundler
|
|
npx expo start --dev-client
|
|
|
|
# Scan QR code with dev client or enter URL manually
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
**Build fails with signing errors:**
|
|
```bash
|
|
eas credentials
|
|
```
|
|
|
|
**Clear build cache:**
|
|
```bash
|
|
eas build -p ios --profile development --clear-cache
|
|
```
|
|
|
|
**Check EAS CLI version:**
|
|
```bash
|
|
eas --version
|
|
eas update
|
|
```
|