Crea il progetto Tow con Dev e l'ambiente di produzione sulla base del fuoco Scarica il file json da tre
e imposta l'SDK come da: https://firebase.google.com/docs/android/setup O per Crashlytics: https://firebase.google.com/docs/crashlytics/get-started?platform=android
Innanzitutto, posiziona il rispettivo google_services.json per ciascun buildType nelle seguenti posizioni:
app/src/debug/google_services.json
app/src/test/google_services.json
app/google_services.json
Nota: app root / google_services.json Questo file dovrebbe trovarsi lì in base alle varianti di build, copiare il codice json nel file json root
Ora, eseguiamo alcune attività graduali nel tuo: build.gradle dell'app per automatizzare lo spostamento del google_services.json appropriato in app / google_services.json
copiarlo nel file app / Gradle
task switchToDebug(type: Copy) {
description = 'Switches to DEBUG google-services.json'
from "src/debug"
include "google-services.json"
into "."
}
task switchToRelease(type: Copy) {
description = 'Switches to RELEASE google-services.json'
from "src/release"
include "google-services.json"
into "."
}
Fantastico, ma dover eseguire manualmente queste attività prima di creare l'app è complicato. Vorremmo che l'attività di copia appropriata sopra fosse eseguita qualche tempo prima: assembleDebug o: assembleRelease è in esecuzione. Vediamo cosa succede quando: assembleRelease viene eseguito: copia questo nel file / gradlew
Zaks-MBP:my_awesome_application zak$ ./gradlew assembleRelease
Parallel execution is an incubating feature.
.... (other tasks)
:app:processReleaseGoogleServices
....
:app:assembleRelease
Nota l'attività: app: processReleaseGoogleServices. Questa attività è responsabile dell'elaborazione del file root google_services.json. Vogliamo che il corretto google_services.json venga elaborato, quindi dobbiamo eseguire immediatamente la nostra attività di copia. Aggiungi questo al tuo build.gradle. Nota la valutazione after aftervaluate.
copiarlo nel file app / Gradle
afterEvaluate {
processDebugGoogleServices.dependsOn switchToDebug
processReleaseGoogleServices.dependsOn switchToRelease
}
Ora, in qualsiasi momento: app: processReleaseGoogleServices viene chiamato, la nostra nuova definizione: app: switchToRelease verrà chiamata in anticipo. Stessa logica per il debug buildType. Puoi eseguire: app: assembleRelease e la versione di rilascio google_services.json verrà automaticamente copiata nella cartella principale del modulo dell'app.