Hermes

Sentry React Native SDK supports Hermes engine out of the box.

Read our React Native Source Maps documentation to learn how to upload source maps for your app.

This section describes common issues when using Hermes and how to resolve them.

If you use EXTRA_PACKAGER_ARGS, you only need the packager source map. This is the default behavior if you used @sentry/wizard. If you use SOURCEMAP_FILE, the combined Hermes source map is necessary.

Our React Native Source Maps documentation is based on react-native-xcode.sh for iOS and on BundleHermesCTask.kt for Android. If you are having issues with the manually generated artifacts check the steps of your React Native tooling using the previous links.

For more details see this issue in the React Native repository.

If you are using Hermes, you should not have the RAM bundles feature enabled. In Hermes, when loading the bytecode, mmap ensures that the entire file is not loaded. Using Hermes with RAM bundles might lead to issues, because those mechanisms are not compatible with each other.

Sentry added support for react-native builds that use the hermes engine, which required changes to the Sentry SDK, sentry-cli as well as Sentry itself.

Sentry customers using the SaaS product (sentry.io) will need to update the SDK and sentry-cli. The minimum required version for the SDK is @sentry/react-native SDK version 1.3.3, and @sentry/cli version 1.51.1.

For self-hosted Sentry users, the minimum version required is f07352b.

Once you have the minimum version of the SDK, Sentry provides the standard integration as described in the React Native Sentry documentation.

To upload generated sourcemaps using Fastlane, use the sentry_upload_sourcemap action. See how to install Sentry Fastlane Plugin here.

Copied
sentry_upload_sourcemap(
  auth_token: 'sntrys_YOUR_TOKEN_HERE',
  org_slug: 'example-org',
  project_slug: 'example-project',
  version: '...',
  app_identifier: '...', # bundle_identifer of your app
  build: '...', # optional build number of your app
  dist: '...', # optional distribution of the release usually the buildnumber
  sourcemap: ['index.android.bundle', 'index.android.bundle.map'],
  rewrite: true
)
Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").