mapbox / mapbox/mapbox-navigation-android

Refactor how we manage firebase gradle plugins for the test-app

Offen
#4,076 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Kotlin
Sterne
651
Forks
321
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

Following up from https://github.com/mapbox/mapbox-navigation-android/pull/4075
Other approaches considered https://github.com/mapbox/mapbox-navigation-android/issues/4071

### Problem

Right now we have an empty google-services.json to allow customers to run the app without access to Firebase. But we don't want to require an empty

This ticket is to consider approaches and find a long term solution. Iterations attempted may need to be expanded on.

This ticket may also require a request from Firebase, to give a clean recommendation.

### Requirements

- Customers outside of Mapbox should be able to clone the repo and run the test-app
- Firebase robotic runs should be able to run the test app
- Firebase robotic runs should include crashlytics

### Approaches

Pass in a gradle parameter to disable plugins ./gradlew ... -PuseFirebasePerfAndCrashlytics=true

if (useFirebasePerfAndCrashlytics) {
apply(plugin = "com.google.firebase.firebase-perf")
apply(plugin = "com.google.firebase.crashlytics")
println("Firebase performance and crashlytics plugins applied")
}

This doesn't work because the plugin is required even if the build type is not used
``` groovy
release {
minifyEnabled true
signingConfig signingConfigs.release
manifestPlaceholders = [enableCrashReporting: "true"]
firebaseCrashlytics { << == required even when the variant is debug build
mappingFileUploadEnabled = true
nativeSymbolUploadEnabled = true
strippedNativeLibsDir = 'build/intermediates/stripped_native_libs/debug/release/lib/'
unstrippedNativeLibsDir = com.mapbox.gradle.NativeDownloadTask.UNSTRIPPED_NATIVE_LIBS_PATH
}
}
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem Lesen von Pull Request 4075 und Issue 4071 und untersuche anschließend die test-app-Gradle-Konfiguration sowie deren Verwendung von google-services.json. Vergleiche die vorgeschlagenen Ansätze für Firebase-Plugins anhand der drei Anforderungen: Externe Kunden können die App klonen und ausführen, Firebase robotic runs können sie ausführen, und diese Ausführungen enthalten Crashlytics.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, firebase, kotlin
Bereich
build-system, mobile-dev
Issue-Typ
Refactoring
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.