React Native (bare)
Bare React Native projects use full hot reload via Metro, similar to Expo but without deep links. JS/TS changes appear on the device within seconds. Press[r] only when native dependencies change.
For build and upload steps, see React Native Build Guide.
How detection works
The CLI looks forreact-native in package.json dependencies without expo also being present. If both react-native and expo exist, the Expo provider takes precedence.
Detection confidence is 0.8 — higher than Swift (0.7) and Android (0.6), so bare RN projects are correctly identified even when ios/ and android/ directories are present.
Additional indicators that boost detection: metro.config.js, metro.config.ts, react-native.config.js, react-native.config.ts.
No app_scheme needed
Unlike Expo, bare React Native hot reload does not use deep links. The dev client loads the JavaScript bundle directly from the tunnel URL. Noapp_scheme or use_exp_prefix configuration is needed.
Monorepo considerations
The same directory rules apply as Expo:- Run all commands from the React Native app directory, not the monorepo root
- If
react-nativeis hoisted, use--provider react-nativeto force detection - Watch for multiple
.revyl/directories in the monorepo