Hermes
Learn about using the Hermes engine with our React Native SDK.
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.
React Native 0.70
and CodePush Update minifies the packager bundle by default.
BundleHermesCTask.kt
is only available from version 0.71
on. For previous versions, use react.gradle
.
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.
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
)
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").