Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Build and distribute Expo development clients locally or via TestFlight
.claude/skills/lingxling-expo-dev-client/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 12% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 36% | 0% |
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:
Try Expo Go first with npx expo start. If everything works, you don't need a dev client.
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 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:
basheas build -p ios --profile development --submit
This will:
After receiving the TestFlight email:
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:
.ipa file.apk or .aab fileInstall 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:
bashadb install build.apk
bash# iOS only eas build -p ios --profile development # Android only eas build -p android --profile development # Both platforms eas build --profile development
bash# List recent builds eas build:list # View build details eas build:view
Once installed, the dev client provides:
Connect to local development:
bash# Start Metro bundler npx expo start --dev-client # Scan QR code with dev client or enter URL manually
Build fails with signing errors:
basheas credentials
Clear build cache:
basheas build -p ios --profile development --clear-cache
Check EAS CLI version:
basheas --version eas update
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 10,456 | 11,316 | +8% | 1 | 1 | 0% | 1,812 | 1,841 | +2% | 0 | 0 | — |
case-02 | fail→pass | 12,066 | 7,229 | -40% | 1 | 1 | 0% | 1,997 | 2,049 | +3% | 0 | 0 | — |
case-03 | fail→pass | 13,727 | 7,045 | -49% | 1 | 1 | 0% | 2,174 | 2,286 | +5% | 0 | 0 | — |
case-04 | fail→pass | 14,980 | 7,417 | -50% | 1 | 1 | 0% | 1,855 | 2,083 | +12% | 0 | 0 | — |
case-05 | pass→pass | 18,007 | 9,819 | -45% | 1 | 1 | 0% | 2,357 | 2,324 | -1% | 0 | 0 | — |
case-06 | pass→pass | 9,951 | 4,607 | -54% | 1 | 1 | 0% | 1,553 | 1,824 | +17% | 0 | 0 | — |
case-07 | fail→pass | 8,372 | 6,346 | -24% | 1 | 1 | 0% | 1,394 | 1,893 | +36% | 0 | 0 | — |
case-08 | pass→pass | 10,772 | 3,758 | -65% | 1 | 1 | 0% | 1,476 | 1,602 | +9% | 0 | 0 | — |
case-09 | fail→fail | 4,863 | 4,153 | -15% | 1 | 1 | 0% | 772 | 1,625 | +110% | 0 | 0 | — |
case-10 | pass→pass | 8,362 | 3,096 | -63% | 1 | 1 | 0% | 1,144 | 1,369 | +20% | 0 | 0 | — |
case-11 | pass→pass | 13,600 | 2,321 | -83% | 1 | 1 | 0% | 1,100 | 1,332 | +21% | 0 | 0 | — |
case-12 | fail→pass | 7,432 | 2,569 | -65% | 1 | 1 | 0% | 934 | 1,272 | +36% | 0 | 0 | — |
case-13 | fail→pass | 7,783 | 4,010 | -48% | 1 | 1 | 0% | 1,478 | 1,442 | -2% | 0 | 0 | — |
case-14 | pass→pass | 11,835 | 2,536 | -79% | 1 | 1 | 0% | 590 | 1,202 | +104% | 0 | 0 | — |
case-15 | pass→pass | 12,933 | 4,713 | -64% | 1 | 1 | 0% | 2,002 | 1,732 | -13% | 0 | 0 | — |
case-16 | pass→pass | 13,958 | 7,294 | -48% | 1 | 1 | 0% | 2,226 | 1,862 | -16% | 0 | 0 | — |
case-17 | fail→fail | 6,401 | 4,310 | -33% | 1 | 1 | 0% | 969 | 1,515 | +56% | 0 | 0 | — |
case-18 | fail→pass | 6,199 | 2,492 | -60% | 1 | 1 | 0% | 1,052 | 1,350 | +28% | 0 | 0 | — |
case-19 | fail→fail | 16,440 | 7,390 | -55% | 1 | 1 | 0% | 2,414 | 1,968 | -18% | 0 | 0 | — |
case-20 | pass→pass | 17,908 | 11,589 | -35% | 1 | 1 | 0% | 2,545 | 3,138 | +23% | 0 | 0 | — |
case-21 | pass→pass | 14,579 | 12,314 | -16% | 1 | 1 | 0% | 2,515 | 2,679 | +7% | 0 | 0 | — |
case-22 | pass→pass | 121,598 | 9,926 | -92% | 1 | 1 | 0% | 2,440 | 2,697 | +11% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.