升级到 Crashlytics Gradle 插件 v3

Crashlytics Gradle 插件的最新版本是一个主要版本 (v3.0.0),它通过取消对较低版本的 Gradle 和 Android Gradle 插件的支持来实现 SDK 的现代化改造。另外,此版本中的更改解决了 AGP v8.1+ 的问题,改进了对原生应用和自定义 build 的支持。

最低要求

Crashlytics Gradle 插件 v3 具有以下最低要求:

  • Android Gradle 插件 8.1+
    使用最新版 Android Studio 中的 Android Gradle 插件升级助理升级此插件。

  • Firebase 的 google-services Gradle 插件 4.4.1+
    在项目的 Gradle build 文件中指定最新版本以升级此插件,如下所示:

Kotlin

plugins {
  id("com.android.application") version "8.1.4" apply false
  id("com.google.gms.google-services") version "4.4.2" apply false
  ...
}

Groovy

plugins {
  id 'com.android.application' version '8.1.4' apply false
  id 'com.google.gms.google-services' version '4.4.2' apply false
  ...
}

对 Crashlytics 扩展程序所做的更改

在 Crashlytics Gradle 插件 v3 中,Crashlytics 扩展程序进行了以下破坏性更改:

  • defaultConfig Android 代码块中移除了扩展程序。请改为配置每个变体。

  • 移除了已弃用的字段 mappingFile。现在改为自动提供合并的映射文件。

  • 移除了已弃用的字段 strippedNativeLibsDir。请改为对所有原生库使用 unstrippedNativeLibsDir

  • unstrippedNativeLibsDir 字段更改为了累积字段。

  • 将闭包字段 symbolGenerator 替换为了两个新的顶级字段:

    • symbolGeneratorType:一个字符串,即 "breakpad"(默认值)或 "csym"
    • breakpadBinary:一个文件,即本地 dump_syms 二进制文件替换项。

示例:如何升级扩展程序

Kotlin

旧版
        buildTypes {
          release {
            configure<CrashlyticsExtension> {
              // ...
              symbolGenerator(
                closureOf<SymbolGenerator> {
                  symbolGeneratorType = "breakpad"
                  breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
                }
              )
            }
          }
        }
      
当前 v3 版本
        buildTypes {
          release {
            configure<CrashlyticsExtension> {
              // ...
              symbolGeneratorType = "breakpad"
              breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
            }
          }
        }
      

Groovy

旧版
        buildTypes {
          release {
            firebaseCrashlytics {
              // ...
              symbolGenerator {
                breakpad {
                  binary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
                }
              }
            }
          }
        }
      
当前 v3 版本
        buildTypes {
          release {
            firebaseCrashlytics {
              // ...
              symbolGeneratorType "breakpad"
              breakpadBinary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
            }
          }
        }