A versão mais recente do plug-in do Gradle para Crashlytics é uma das versões principais do Google (v3.0.0) e moderniza o SDK eliminando o suporte a versões anteriores do Gradle e do Plug-in do Android para Gradle. Além disso, as mudanças nesta versão resolvem problemas com o AGP v8.1+ e melhoram o suporte a apps nativos e builds personalizados.
Requisitos mínimos
O plug-in do Gradle para Crashlytics v3 tem os seguintes requisitos mínimos:
Plug-in do Android para Gradle 8.1+
Atualize o plug-in usando o Assistente de upgrade do Plug-in do Android para Gradle na versão mais recente do Android Studio.Plug-in
google-services
do Firebase para Gradle 4.4.1+
Faça upgrade do plug-in especificando a versão mais recente no arquivo de build do Gradle do seu projeto desta forma:
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 ... }
Mudanças na extensão do Crashlytics
Com a v3 do plug-in do Gradle para Crashlytics, a extensão do Crashlytics tem estas alterações interruptivas:
A extensão foi removida do bloco do Android
defaultConfig
. Em vez disso, precisa configurar cada variante.O campo descontinuado
mappingFile
foi removido. Em vez disso, o arquivo de mapeamento mesclado é fornecido automaticamente.O campo descontinuado
strippedNativeLibsDir
foi removido. Em vez disso, useunstrippedNativeLibsDir
para todas as bibliotecas nativas.O campo
unstrippedNativeLibsDir
foi mudado para ser cumulativo.Ver um exemplo com vários diretórios
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 ") } } } }A tarefa
uploadCrashlyticsSymbolFilesBasicRelease
só vai fazer upload dos símbolos emMY/NATIVE/LIBS
, masuploadCrashlyticsSymbolFilesFeatureXRelease
vai fazer upload dos símbolos ambosMY/NATIVE/LIBS
eMY/FEATURE_X/LIBS
.O campo de interdição
symbolGenerator
foi substituído por dois novos campos de nível superior:symbolGeneratorType
, uma string de"breakpad"
(padrão) ou"csym"
:breakpadBinary
, um arquivo de uma substituição binária local dedump_syms
.
Exemplo de como fazer upgrade da extensão
Antes |
buildTypes { release { configure<CrashlyticsExtension> { // ... symbolGenerator( closureOf<SymbolGenerator> { symbolGeneratorType = "breakpad" breakpadBinary = file(" |
Agora na v3 |
buildTypes { release { configure<CrashlyticsExtension> { // ... symbolGeneratorType = "breakpad" breakpadBinary = file(" |
Antes |
buildTypes { release { firebaseCrashlytics { // ... symbolGenerator { breakpad { binary file(" |
Agora na v3 |
buildTypes { release { firebaseCrashlytics { // ... symbolGeneratorType "breakpad" breakpadBinary file(" |