| platform | Target platform: ios | android | yes | — |
| profile | Build profile from app-build.json (e.g. development, preview, production) | no | production |
| config | Path to app-build.json config file | no | ./app-build.json |
| submit | Submit to App Store / Google Play after build | no | false |
| ota | Export an OTA update instead of a full native build | no | false |
| working-directory | Working directory for the app (e.g., 'app/' for monorepos). Defaults to repository root. | no | — |
| version-bump | Auto-increment build number (iOS buildNumber / Android versionCode) | no | false |
| version-strategy | Version bump strategy: app-json | git-tag | git-commit-count | timestamp | no | app-json |
| version-git-tag-pattern | Git tag glob pattern for git-tag strategy (e.g. 'v*') | no | v* |
| cache | Cache node_modules, CocoaPods, Gradle, and Ruby gems | no | true |
| fingerprint | Enable @expo/fingerprint to detect native changes. When enabled, skips native build and routes to OTA pipeline if only JS changed. | no | false |
| skip-prebuild | Skip 'expo prebuild' step. Use when native directories (ios/android) are pre-committed. | no | false |
| prebuild-clean | Run 'expo prebuild --clean' to regenerate native directories from scratch. | no | false |
| node-version | Node.js version to use | no | 22 |
| fastlane-version | Fastlane version to install (use 'latest' for most recent) | no | latest |
| xcode-version | Xcode version to use (e.g., '16.2', '26'). Runs xcode-select on the runner. Only applies to iOS builds on macOS. | no | — |
| java-version | Java/JDK version for Android builds (e.g., '17', '21'). Validates the runner's JDK matches. Only applies to Android. | no | 17 |
| android-architectures | Comma-separated list of Android ABIs to build (e.g., 'arm64-v8a', 'arm64-v8a,armeabi-v7a', 'all'). Defaults to arm64-v8a. | no | arm64-v8a |
| environment | Environment variables to set for the build (JSON object, e.g., '{"APP_ENV": "production", "API_URL": "https://api.example.com"}') | no | — |
| ios-scheme | Xcode scheme to build (overrides config file). For projects with multiple schemes (e.g., 'MyApp-Production'). | no | — |
| ios-build-configuration | Xcode build configuration (overrides config file). Supports custom configurations like 'Release-Production'. | no | — |
| ios-certificate-p12 | Base64-encoded iOS distribution certificate (.p12) | no | — |
| ios-certificate-password | Password for the iOS distribution certificate | no | — |
| ios-provisioning-profile | Base64-encoded iOS provisioning profile (.mobileprovision) | no | — |
| ios-extension-profiles | JSON map of bundle ID to base64-encoded provisioning profile for app extensions | no | — |
| match-password | Fastlane match encryption passphrase | no | — |
| match-git-private-key | Base64-encoded SSH private key for the match git repository | no | — |
| asc-api-key-id | App Store Connect API Key ID | no | — |
| asc-api-issuer-id | App Store Connect API Issuer ID | no | — |
| asc-api-key-p8 | Base64-encoded App Store Connect API key (.p8) | no | — |
| android-keystore | Base64-encoded Android upload keystore (.jks/.keystore) | no | — |
| android-keystore-password | Password for the Android keystore | no | — |
| android-key-alias | Key alias within the Android keystore | no | — |
| android-key-password | Password for the Android key | no | — |
| google-play-service-account | Base64-encoded Google Play service account JSON key | no | — |