expo prebuild, expo run:ios, or expo run:android.
Choose the right Expo path
| Current app | Recommended path |
|---|---|
Already using expo-dev-client or EAS builds | Install Lucent, rebuild the development or production build, and run your app. |
| Using Expo Go only | Add expo-dev-client, create a development build, and test Lucent there. |
| Using prebuild or custom native code | Install Lucent, run prebuild if needed, run pods for iOS, and rebuild native targets. |
Install in an Expo app
Generate or update native projects
Add the provider
Expo Go fallback behavior
Expo Go cannot load custom native modules from npm packages. In Expo Go:LucentProvider,LucentIdentify, anduseLucent()do not crash because the JavaScript API falls back safely.- Native screenshot replay is disabled.
- Native crash capture is disabled.
- Native network and log capture are disabled.
lucent.getSessionInfo()returnsnull.- Full session replay appears only after you run a development build, EAS build, or prebuilt native app.
Processing controls
Expo sessions use the same processing controls as React Native sessions. Filters and sampling usually control whether a session is analyzed, not whether the app can send events at all. When you configure a Required URL such as/onboarding, emit path-style screen
evidence from your Expo app:
Onboarding when the filter is a
path like /onboarding.
The same principle applies to Excluded URL filters: Lucent can only skip a
mobile session for an excluded path when the session contains matching path-like
screen evidence.
For user, email, domain, property, anonymous-user, sampling, event-trigger,
minimum-duration, privacy, capture-toggle, batching, and source-map behavior,
see React Native processing controls.
Source-map and release metadata
The Expo config plugin is optional. You do not need it for replay capture. Autolinking is enough once Expo generates or builds the native app. Add the plugin only when you want Lucent source-map upload wrappers installed during prebuild. Source maps and release metadata make React Native JavaScript stack traces readable in Lucent.Verify Expo replay
- Launch a development build, EAS build, or prebuilt app.
- Navigate through a few screens.
-
Trigger a custom event:
- Open app.lucenthq.com -> Sessions.
- Confirm the session shows mobile screenshot replay.
Troubleshooting
I only see Expo Go fallback
I only see Expo Go fallback
You are running in Expo Go. Create a development build with
expo-dev-client, run npx expo run:ios, run npx expo run:android, or
install an EAS build. Expo Go cannot load Lucent’s native screenshot replay
module.No sessions appear after installing
No sessions appear after installing
Rebuild the native app after installing
@lucenthq/react-native. A Metro
reload is not enough because the native module must be compiled into the
app. Also confirm the public key starts with luc_pk_ and the app can reach
https://ingest-api.lucenthq.com.Native module not linked
Native module not linked
Run
npx expo prebuild and rebuild. If iOS fails, run npx pod-install.
If Android fails, make sure Android Studio command-line tools, a compatible
JDK, and ANDROID_HOME or ANDROID_SDK_ROOT are configured.The config plugin changed native files
The config plugin changed native files
The plugin is optional and is only for source-map metadata and upload hooks.
If you do not need those hooks, remove the plugin from
app.json and rerun
prebuild. Replay capture still works through native module autolinking.track() works, but replay is missing
track() works, but replay is missing
Confirm the session lasted longer than
replay.minimumDurationMs, if set.
Confirm sampling.sessionReplay is not 0. If you configured
replay.eventTriggers, call lucent.track() with one of those names before
expecting screenshot recording to begin.Related
React Native SDK
Install, configure, and use the complete mobile SDK API.
Browser SDK
Use
@lucenthq/sdk for web apps and rrweb-based browser replay.