Build Guidance
To use the Dev Loop, a build is required only on native code changes (new native modules, Podfile/Gradle changes, build configuration). JS/TS changes hot reload via Metro — see Dev Loop: Hot reload and rebuild configuration for the full breakdown.Build via Revyl CLI
Prerequisites
- Node.js 18+
- Expo CLI (
npx expo) - EAS CLI (
npx eas-cli) for local or cloud builds - Revyl CLI installed and authenticated (
revyl auth login)
Setup
Initialize the project using the Revyl CLI:Run Build
Run a build using:revyl build --platform [ios|android|<config-key>]
Platform config keys are automatically generated and defined in the .revyl/config.yaml file. See the Configuration page for more details.
This command automatically builds and uploads the app to Revyl, where you can use it to start sessions.
Advanced Configuration
When you runrevyl init, Revyl makes a best-effort guess at your configuration. This section covers configuration in more detail.
eas.json Setup
Youreas.json needs at least 2 profiles, one that includes the development client and another that does not. See the following eas.json file as reference:
developmentClient is set to true only for the development profile.
Build Commands and Hot Reload Setup
revyl init creates a .revyl/config.yaml file in the root of your project, which holds the Revyl CLI configuration. This includes the build commands used by revyl build and the hot reload settings used by revyl dev.
Configure these build settings using the Configuration page.
Expo dev-client hot reload needs a URL scheme baked into the native dev build. This is normally set as part of revyl init. The scheme is the custom URL prefix for your app, such as myapp-dev://. Revyl uses that scheme to open the Expo dev client on the cloud device and connect it to Metro.
If you use app.json, set expo.scheme before creating the dev build:
Troubleshooting
Build fails or times out
Build fails or times out
- Try running the build in verbose mode:
revyl build --platform [ios|android|<config-key>] --verbose - Make sure you’re logged into EAS
- Check EAS build credits
- Verify
package.jsondependencies - Review logs in EAS dashboard
- Validate
eas.jsonsyntax
Download links expired
Download links expired
- Artifacts expire after some time
- Re-run build for fresh links
- Download immediately after build
iOS or Android APK app won't install
iOS or Android APK app won't install
- For iOS, ensure
simulator: trueis set ineas.json. For Android, ensure the profile builds anapk, not anaab.