Skip to main content

Expo Integration Checklist

Tick each box top to bottom. Every item links to the page with the exact steps — this page stays a checklist, not a tutorial.

tip

If every box is ticked, your Expo app is sending the full Pulse signal: crashes, errors, network, screens, interactions, replays, and source-mapped stack traces.


1. Install & Setup

  • SDK installed in the project → Install
  • Pulse plugin added to the app config with API key and data-collection state → Plugin config · all options
  • Recommended extras enabled in the plugin (see block below) — native network on Android, screen-lifecycle toggles, library desugaring for older Android → Plugin Reference
  • Pulse started at the root of the app, before any screens render → Start Pulse
  • Clean prebuild + fresh native build done after the plugin/config change → Prebuild
Recommended app.json plugin block
[
"@dreamhorizonorg/pulse-react-native",
{
"apiKey": "your-api-key",
"dataCollectionState": "ALLOWED",
"android": {
"okHttpInstrumentation": { "enabled": true },
"instrumentation": {
"fragment": { "enabled": false }
},
"coreLibraryDesugaring": {
"enabled": true
}
},
"ios": {
"instrumentation": {
"screenLifecycle": { "enabled": false }
}
}
}
]

fragment (Android) and screenLifecycle (iOS) are set to false because Expo Router already tracks every screen transition from JS — leaving the native lifecycle on would record the same screens twice. If your app has native screens outside of Expo Router (brownfield), turn them back on. Every key is explained in the Plugin Reference and the reduce-noise tip.


2. Navigation Tracking

Pick the one that matches your app.


3. Auto-Captured Signals — verify in dashboard

These need no extra code once setup is done. Confirm each appears in the dashboard.

  • Crashes — Android, iOS, and JS — learn more to configure this Errors guide
  • Network requests from the JS layer — learn more to configure this Network guide
  • Native network traffic (images and other native HTTP) — on by default on iOS; needs a toggle on Android — see the Okhttp plugin
  • Screen Load and Screen Session events (depends on step 2) — learn more in Expo Router | Bare Navigation
  • Sessions, ANR, slow frames, app startup

4. Opt-in Features

  • Custom events bridged from your analytics layer in one central place → Custom Events
  • Interactions created in the dashboard from those custom events → Managing Interactions
  • Handled errors reported from your catch blocks → Errors
  • Error boundary in place at the app root → Error Boundaries
  • User identified on login and cleared on logout → User Identification
  • User properties set (name, type etc.) → User Properties
  • Session Replay enabled in dashboard config
  • Heatmaps enabled in dashboard config → Heatmaps
  • Click tracking enabled in dashboard config
  • Screen Interactive (Time-To-Interactive) tracking enabled and marked when content is ready → TTI

5. Release Builds — Source Maps & Symbols

Without these, crash and error stack traces stay minified.

  • JS source maps uploaded for Android → Source Maps
  • JS source maps uploaded for iOS → Source Maps
  • Android mapping file (ProGuard / R8) uploaded for the release → Source Maps
  • iOS dSYM uploaded for the release → Source Maps

All ticked? Head to the Dashboard Overview to start exploring the data.