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

How to upload a mapping file to Firebase Crashlytics?

在旧的崩溃报告中 - 有一种简单的上传方法。我没有在 Crashlytics 部分找到它

这里是来自 Firebase 的迈克。 Firebase 中的 Crashlytics 不提供在构建流程之外上传映射文件的方法。我个人很好奇,你是不是经常使用手动上传?

更新: Firebase 更新他们的文档:see here

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

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

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception

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

-printmapping mapping.txt

For faster builds with ProGuard, exclude Crashlytics. Add the following lines to your config file:

-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

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

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

查找最新条目:Uploading deobfuscation file

并尝试找到如下操作的结果:Deobfuscation file(s) uploadedCrashlytics had a problem uploading the deobs file,您会得到一些关于原因的提示。

在您的应用级 build.gradle 文件中将 firebaseCrashlytics.enableMappingFileUpload Gradle 扩展 属性 设置为 true。

// To enable Crashlytics mapping file upload for specific product flavors:
  flavorDimensions "environment"
  productFlavors {
    staging {
      dimension "environment"
      ...
      firebaseCrashlytics {
        mappingFileUploadEnabled false
      }
    }
    prod {
      dimension "environment"
      ...
      firebaseCrashlytics {
        mappingFileUploadEnabled true
      }
    }
  }

有关详细信息,请访问 Click here