mapbox / mapbox/mapbox-navigation-android
Refactor how we manage firebase gradle plugins for the test-app
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
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Ö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