升级到 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.1" apply false
  ...
}

Groovy

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

对 Crashlytics 扩展程序的更改

在 v3 版 Crashlytics Gradle 插件中,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")
            }
          }
        }