带有 firebase crashlytics 的 Hermes 包的反应本机源图

luk*_*hol 7 android firebase source-maps react-native react-native-hermes

我想从react-native应用程序中读取crashlytics报告,但它在firebase控制台中根本不可读。Android 的崩溃示例如下所示:

Non-fatal Exception: io.invertase.firebase.crashlytics.UnhandledPromiseRejection
Invalid RegExp pattern: Parenthesized expression not closed
.RegExp ((native):0:0)
.anonymous (address at index.android.bundle:1:2065589)
.ue (address at index.android.bundle:1:2070284)
.ce (address at index.android.bundle:1:2069288)
.Be (address at index.android.bundle:1:2080135)
Run Code Online (Sandbox Code Playgroud)

我启用了 Hermes,并且我的签名构建 apkindex.android.bundle以预编译格式 ( build/generated/assets/react/appName/release/index.android.bundle) 和源映射文件生成build/sourcemaps/react/appName/release/index.android.bundle.map。我尝试使用 npm 包读取这些文件source-map-explorer,但不幸的是它总是产生以下错误:

source-map-explorer index.android.bundle index.android.bundle.map 
index.android.bundle
  Your source map refers to generated column 165922 on line 1, but the source only contains 165920 column(s) on that line.
  Check that you are using the correct source map.
Run Code Online (Sandbox Code Playgroud)
  1. 我可以将源映射上传到 firebase 以便在 firebase 控制台中读取错误吗?
  2. 如何使用 sourcemap 读取 Hermes 捆绑文件?

Max*_*man 6

你只需要使用

npx metro-symbolicate android/app/build/generated/sourcemaps/react/release/index.android.bundle.map < stacktrace.txt
Run Code Online (Sandbox Code Playgroud)

将您的堆栈跟踪放入 stacktrack.txt 中。(删除 0:0 即可生效)

欲了解更多信息,请访问https://reactnative.dev/docs/next/symbolication

  • 我想没有办法让它在 Firebase 控制台中自动工作吗? (6认同)