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) only when your authored recipe uses EAS - Revyl CLI installed and authenticated (
revyl auth login)
Setup
Initialize the project using the Revyl CLI:Choose a build approach
Choosing the Expo framework does not itself require
EXPO_TOKEN. Add that
secret only when the selected build command uses EAS or another project step
needs it. The dashboard leaves commands and secret references directly
editable; create any required secret inline or in the Library.
Development builds power the dev loop. Preview builds are for testing and starting sessions when the Metro server isn’t needed.
Run Build
Run one profile/platform recipe locally:--remote:
ios or android recipes live under
build.profiles in .revyl/config.yaml. There is no active/default profile.
See Configuration for selection and recipe
fields.
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 setup
This section applies only when an authored recipe uses EAS. Youreas.json
needs at least two profiles: one that includes the development client and one
that does not. See the following eas.json file as reference:
developmentClient is set to true only for the development profile.
Revyl executes the command arrays in .revyl/config.yaml as authored; it does
not rewrite eas.json or switch EAS profiles during a build.
Build Commands and Hot Reload Setup
revyl init creates a .revyl/config.yaml file in the root of your project.
Each named profile contains the ordered setup/build commands and output path
used by revyl build.
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
- Stream detailed diagnostics:
revyl build --profile development --platform ios --debug - For an unattended remote EAS recipe, verify that
EXPO_TOKENis stored and referenced - Check EAS build credits only when the recipe uses EAS
- Verify
package.jsondependencies - For EAS cloud builds, review the EAS dashboard logs
- For EAS
--localbuilds, review command output and logs in the local EAS working directory - Validate
eas.json
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.