如何将映射文件上传到Firebase Crashlytics?

itz*_*har 42 firebase crashlytics firebase-crash-reporting

在旧的Crash报告中 - 有一种简单的上传方式.我没有在Crashlytics部分找到它

itz*_*har 34

更新: Firebase更新他们的文档:请参阅此处

不再需要手动上传映射文件.

1 - 要保留Crashlytics对可读崩溃报告的信息,请将以下行添加到配置文件中:

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
Run Code Online (Sandbox Code Playgroud)

2 - 要让Crashlytics自动上传ProGuard或DexGuard映射文件,请从配置文件(app/proguard-rules.pro)中删除此行:

-printmapping mapping.txt
Run Code Online (Sandbox Code Playgroud)

要使用ProGuard进行更快的构建,请排除Crashlytics.将以下行添加到配置文件中:

-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**
Run Code Online (Sandbox Code Playgroud)

  • `-printmapping mapping.txt`它应该从哪个配置文件中删除? (22认同)
  • 这个不好.Google Play允许我上传映射.我不会在生产代码中使用-keep linenumbers等. (3认同)
  • 如何在Firebase Crashlytics和Play控制台上上传映射文件?如果我删除`-printmapping mapping.txt`以自动将其上传到Firebase,则不会生成该文件,我无法在Play控制台上手动上传. (3认同)
  • 实际上你不应该使用-keep class com.crashlytics.**{*; } -dontwarn com.crashlytics.**每https://firebase.google.com/docs/crashlytics/get-deobfuscated-reports (2认同)

Mik*_*ell 16

Mike来自Firebase.Firebase中的Crashlytics不提供在构建流程之外上传映射文件的方法.我个人好奇,你经常使用手动上传吗?

  • @MikeBonnell,当它没有按预期工作时,要理解出了什么问题要困难得多.由于没有上传映射的任何信息 - 你不知道一切都是好的 - 你需要先获得崩溃/异常才能检查它.在自己的手中拥有一些控制并且在需要之后能够修复它总是更好. (20认同)
  • @MikeBonnell +1关于更好地了解Crashlytics在这里所做的事情,它应该只是起作用,但是当它没有时,我们很多人都完全被困住了.问题是mapping.txt文件,文档说要删除`-printmapping mapping.txt`,这样就不会生成文件而Crashlytics可以做到这一点.我的pro文件中从未有过该行,但仍然生成了mapping.txt,我从未见过反混淆的崩溃报告.对这个怪癖的任何见解?干杯 (11认同)
  • Tnx迈克。是的,我经常使用它 (4认同)
  • @MikeBonnell拥有可读的崩溃报告会很不错,就像我们以前在旧的Firebase崩溃报告系统上一样.你知道,实际上可以使调试成为可能. (3认同)
  • 谢谢,我将与团队聊聊,让我们更容易查看构建工具日志,以显示上传是否成功. (2认同)
  • 如果生产构建是由互联网访问受限的机器完成的怎么办?是否有任何端口或应该打开/配置的端口? (2认同)
  • 将端口 80 和 443 上的 *.fabric.io 和 *.crashlytics.com 列入白名单。 (2认同)
  • 是的,这对于无法访问互联网的封闭式 CI 服务器非常重要。Gradle 依赖项是从本地工件检索的,但映射无法自动上传。 (2认同)

Jua*_*nco 8

如果您按照指示启用自动上传然后构建应用程序,并且您仍然看到 Firebase 中混淆的堆栈跟踪,您应该检查日志文件:

在 Linux / Windows 上:
/.crashlytics/com.crashlytics.tools/crashlytics.log 在 Mac 上:~/Library/Caches/com.crashlytics/com.crashlytics.tools/crashlytics.log

查找最新条目: Uploading deobfuscation file

并尝试找出操作的结果,例如:Deobfuscation file(s) uploadedCrashlytics had a problem uploading the deobs file并且您将获得有关原因的一些提示。