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 文件中指定最新版本以升级此插件,如下所示:
plugins { id("com.android.application") version "8.1.4" apply false id("com.google.gms.google-services") version "4.4.2" apply false ... }
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
字段更改为了累积字段。查看包含多个目录的示例
buildTypes { release { configure<CrashlyticsExtension> { nativeSymbolUploadEnabled = true unstrippedNativeLibsDir = file("
MY/NATIVE/LIBS ") } } productFlavors { flavorDimensions += "feature" create("basic") { dimension = "feature" // ... } create("featureX") { dimension = "feature" configure<CrashlyticsExtension> { unstrippedNativeLibsDir = file("MY/FEATURE_X/LIBS ") } } } }uploadCrashlyticsSymbolFilesBasicRelease
任务只会上传MY/NATIVE/LIBS
中的符号,但uploadCrashlyticsSymbolFilesFeatureXRelease
会上传MY/NATIVE/LIBS
和MY/FEATURE_X/LIBS
中的符号。将闭包字段
symbolGenerator
替换为了两个新的顶级字段:symbolGeneratorType
:一个字符串,即"breakpad"
(默认值)或"csym"
。breakpadBinary
:一个文件,即本地dump_syms
二进制文件替换项。
示例:如何升级扩展程序
之前 |
buildTypes { release { configure<CrashlyticsExtension> { // ... symbolGenerator( closureOf<SymbolGenerator> { symbolGeneratorType = "breakpad" breakpadBinary = file(" |
当前 v3 版本 |
buildTypes { release { configure<CrashlyticsExtension> { // ... symbolGeneratorType = "breakpad" breakpadBinary = file(" |
之前 |
buildTypes { release { firebaseCrashlytics { // ... symbolGenerator { breakpad { binary file(" |
当前 v3 版本 |
buildTypes { release { firebaseCrashlytics { // ... symbolGeneratorType "breakpad" breakpadBinary file(" |