Uaktualnij wtyczkę Crashlytics Gradle do wersji 3

Najnowsza wersja wtyczki Crashlytics Gradle to wersja główna (3.0.0), która modernizuje pakiet SDK przez wycofanie obsługi starszych wersji Gradle i wtyczki Androida do obsługi Gradle. Ponadto zmiany w tej wersji rozwiązują problemy z wersją AGP 8.1 i nowszymi oraz poprawiają obsługę aplikacji natywnych i niestandardowych kompilacji.

Wymagania minimalne

CrashlyticsPrzy wtyczce Gradle w wersji 3 obowiązują te minimalne wymagania:

  • Wtyczka Androida do obsługi Gradle w wersji 8.1 lub nowszej
    Zaktualizuj tę wtyczkę za pomocą Asystenta uaktualniania wtyczki Androida do obsługi Gradle w najnowszej wersji Android Studio.

  • Wtyczka google-servicesGradle Firebase w wersji 4.4.1 lub nowszej
    Aby uaktualnić tę wtyczkę, w pliku build Gradle projektu podaj jej najnowszą wersję, na przykład:

KotlinGroovy
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
  ...
}

Zmiany w rozszerzeniu Crashlytics

W wersji 3 wtyczki Gradle Crashlytics rozszerzenie Crashlytics zawiera te zmiany powodujące niezgodność:

  • Rozszerzenie zostało usunięte z blokady defaultConfig na Androidzie. Zamiast tego skonfiguruj każdą odmianę.

  • Usunięto wycofane pole mappingFile. Zamiast tego scalony plik mapowania jest teraz dostarczany automatycznie.

  • Usunięto wycofane pole strippedNativeLibsDir. Zamiast tego należy używać znaku unstrippedNativeLibsDir w przypadku wszystkich bibliotek natywnych.

  • Zmieniliśmy pole unstrippedNativeLibsDir na kumulacyjne.

      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")
            }
          }
        }
      }
      

    Zadanie uploadCrashlyticsSymbolFilesBasicRelease prześle tylko symbole z pliku MY/NATIVE/LIBS, ale zadanie uploadCrashlyticsSymbolFilesFeatureXRelease prześle symbole z obu plików: MY/NATIVE/LIBSMY/FEATURE_X/LIBS.

  • Pole zamknięcia symbolGenerator zostało zastąpione przez 2 nowe pola najwyższego poziomu:

    • symbolGeneratorType: ciąg znaków o wartości "breakpad" (domyślnie) lub "csym".
    • breakpadBinary, plik z lokalnym binarnym plikiem zastępczym dump_syms.

Przykład uaktualniania rozszerzenia

KotlinGroovy
Przed
        buildTypes {
          release {
            configure<CrashlyticsExtension> {
              // ...
              symbolGenerator(
                closureOf<SymbolGenerator> {
                  symbolGeneratorType = "breakpad"
                  breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
                }
              )
            }
          }
        }
      
Wersja 3
        buildTypes {
          release {
            configure<CrashlyticsExtension> {
              // ...
              symbolGeneratorType = "breakpad"
              breakpadBinary = file("/PATH/TO/BREAKPAD/DUMP_SYMS")
            }
          }
        }
      
Przed
        buildTypes {
          release {
            firebaseCrashlytics {
              // ...
              symbolGenerator {
                breakpad {
                  binary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
                }
              }
            }
          }
        }
      
Wersja 3
        buildTypes {
          release {
            firebaseCrashlytics {
              // ...
              symbolGeneratorType "breakpad"
              breakpadBinary file("/PATH/TO/BREAKPAD/DUMP_SYMS")
            }
          }
        }