Hermes
了解如何在我们的 React Native SDK 中使用 Hermes 引擎。
Sentry React Native SDK 默认支持 Hermes
引擎。
阅读我们的 React Native 源映射 文档,了解如何为你的应用上传源映射。
本节描述了使用 Hermes 时常见的问题及解决方法。
如果你使用 EXTRA_PACKAGER_ARGS
,你只需要打包器源映射。这是使用 @sentry/wizard
的默认行为。如果你使用 SOURCEMAP_FILE
,则需要组合的 Hermes 源映射。
我们的 React Native 源映射 文档基于 iOS 的 react-native-xcode.sh
和 Android 的 BundleHermesCTask.kt
。如果你在手动生成的工件上有问题,请使用上述链接检查你的 React Native 工具链步骤。
React Native 0.70
和 CodePush 更新默认会压缩打包器 bundle。
BundleHermesCTask.kt
仅从版本 0.71
开始可用。对于之前的版本,请使用 react.gradle
。
更多详情请参阅 React Native 仓库中的 此问题。
如果你使用 Hermes,你不应启用 RAM bundles 功能。在 Hermes 中,加载字节码时,mmap
确保整个文件不会被加载。使用 Hermes 与 RAM bundles 可能会导致问题,因为这两种机制不兼容。
Sentry 增加了对使用 hermes
引擎的 react-native
构建的支持,这需要对 Sentry SDK、sentry-cli
以及 Sentry 本身进行更改。
使用 SaaS 产品 (sentry.io) 的 Sentry 用户需要更新 SDK 和 sentry-cli
。SDK 的最低要求版本是 @sentry/react-native
SDK 版本 1.3.3
,@sentry/cli
版本 1.51.1
。
对于自托管 Sentry 用户,最低要求版本是 f07352b。
一旦你有了 SDK 的最低版本,Sentry 将按照 React Native Sentry 文档 中描述的标准集成提供支持。
要使用 Fastlane 上传生成的源映射,请使用 sentry_upload_sourcemap
操作。有关如何安装 Sentry Fastlane 插件的信息,请参阅 这里。
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
)