eas-build-profilelisted
Install: claude install-skill voidcorp-core/void-harness
# eas-build-profile
Use when configuring EAS Build for an Expo app. The default `eas.json` Expo scaffolds is fine to start; this skill ships the void-harness convention for the 3 standard profiles + the why behind each option.
## The 3-profile structure
```jsonc
{
"cli": { "version": ">= 12.0.0" },
"build": {
"development": {
"developmentClient": true,
"distribution": "internal",
"ios": { "simulator": true },
"android": { "buildType": "apk" },
"env": { "APP_VARIANT": "dev" }
},
"preview": {
"distribution": "internal",
"ios": { "simulator": false },
"android": { "buildType": "apk" },
"env": { "APP_VARIANT": "preview" }
},
"production": {
"distribution": "store",
"autoIncrement": true,
"env": { "APP_VARIANT": "prod" }
}
},
"submit": {
"production": {
"ios": { "appleId": "team@voidcorp.io", "ascAppId": "1234567890", "appleTeamId": "ABCD1234" },
"android": { "serviceAccountKeyPath": "./google-play.json", "track": "internal" }
}
}
}
```
## Each profile, in plain words
### `development`
- **Use case**: dev on simulator + device with hot reload, Metro bundler attached
- **`developmentClient: true`** → builds a dev client (custom Expo Go) embedding your native deps. Without it, `expo-router` and custom modules don't work in Expo Go.
- **`distribution: "internal"`** → not for App Store; for your team
- **`ios.simulator: true`** → produces a `.app` runnabl