Ed *_*ain 3 crashlytics react-native stacktrace.js
如何从指向index.android.bundle:474:6500的crashlytics堆栈跟踪行获取源文件行和列信息?
crashlytics 报告堆栈跟踪文本类似于:
Non-fatal Exception: io.invertase.firebase.crashlytics.UnhandledPromiseRejection: undefined is not an object (evaluating 't.includes')
at .removeFile(index.android.bundle:474:6500)
at .<unknown>(index.android.bundle:758:3472)
at .y(index.android.bundle:105:596)
at .<unknown>(index.android.bundle:105:2546)
at .y(index.android.bundle:105:596)
at .o(index.android.bundle:105:1483)
at .<unknown>(index.android.bundle:105:1626)
at .f(index.android.bundle:101:155)
at .<unknown>(index.android.bundle:101:1012)
at .y(index.android.bundle:107:657)
at .C(index.android.bundle:107:1021)
at .callImmediates(index.android.bundle:107:3216)
at .callImmediates([native code]:0:0)
at .value(index.android.bundle:25:3080)
at .<unknown>(index.android.bundle:25:1264)
at .value(index.android.bundle:25:2772)
at .value(index.android.bundle:25:1234)
at .value([native code]:0:0)
at .value([native code]:0:0)
Run Code Online (Sandbox Code Playgroud)
我尝试了堆栈美化器,但效果有限。有没有更靠谱的方法呢?
我花了几天时间试图找出一个好的解决方案。这是迄今为止我发现的最好的。
iOS系统
react-native bundle --platform ios --entry-file index.js --dev false --reset-cache --bundle-output /tmp/bundle.ios.js --assets-dest /tmp/ --sourcemap-output sourcemap.ios.js.map
Run Code Online (Sandbox Code Playgroud)
Android 从 build gradle 自动构建
// https://github.com/facebook/react-native/issues/7393
// /sf/ask/2430057451/
project.ext.react = [
entryFile: "index.js",
enableHermes: false, // clean and rebuild if changing
extraPackagerArgs: ["--sourcemap-output",
file("$buildDir/../../../sourcemap.android.js.map")]
]
Run Code Online (Sandbox Code Playgroud)
或者手动构建:
react-native bundle --platform android --entry-file index.js --dev false --reset-cache --bundle-output /tmp/bundle.android.js --assets-dest /tmp/ --sourcemap-output sourcemap.android.js.map
Run Code Online (Sandbox Code Playgroud)
在Google Firebase 控制台中打开崩溃报告
选择堆栈跟踪选项卡
选择TXT选项卡并将文本保存到名为 mytrace.txt 的文件中
删除以包含“ [native code] ”的第一行开头的所有堆栈跟踪行,因为“ [native code] ”似乎会导致问题
结果示例:错误源自 Utility.js:567
npx metro-symbolicate sourcemap.android.js < fs-27-stack-trace.txt
Non-fatal Exception: io.invertase.firebase.crashlytics.UnhandledPromiseRejection: undefined is not an object (evaluating 't.includes')
at .removeFile(/Users/eddie/Documents/projects/react-native/my-react-native-app/v1.6.1146/source/app/components/Utility.js:567:includes)
at .<unknown>(/Users/eddie/Documents/projects/react-native/my-react-native-app/v1.6.1146/source/app/components/software-downloader/DownloadClient.js:237:oldVersion)
Run Code Online (Sandbox Code Playgroud)
我希望这可以帮助其他人。
| 归档时间: |
|
| 查看次数: |
3690 次 |
| 最近记录: |