Cree el proyecto Tow con Dev y Production Environment en firebase Descargue el archivo json de tres
y configure el SDK según: https://firebase.google.com/docs/android/setup O para Crashlytics: https://firebase.google.com/docs/crashlytics/get-started?platform=android
Primero, coloque los respectivos google_services.json para cada buildType en las siguientes ubicaciones:
app/src/debug/google_services.json
app/src/test/google_services.json
app/google_services.json
Nota: Aplicación raíz / google_services.json Este archivo debe estar allí de acuerdo con las variantes de compilación, copie el código json en el archivo json raíz
Ahora, agilicemos algunas tareas de gradle en su: build.gradle de la aplicación para automatizar el movimiento de google_services.json a app / google_services.json
copia esto en la aplicación / archivo 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 "."
}
Genial, pero tener que ejecutar manualmente estas tareas antes de crear su aplicación es engorroso. Queremos que la tarea de copia adecuada anterior se ejecute en algún momento antes: assembleDebug o: assembleRelease se ejecuta. Veamos qué sucede cuando: assembleRelease se ejecuta: copie este en el archivo / gradlew
Zaks-MBP:my_awesome_application zak$ ./gradlew assembleRelease
Parallel execution is an incubating feature.
.... (other tasks)
:app:processReleaseGoogleServices
....
:app:assembleRelease
Observe la tarea: app: processReleaseGoogleServices. Esta tarea es responsable de procesar el archivo raíz google_services.json. Queremos que se procese el google_services.json correcto, por lo que debemos ejecutar nuestra tarea de copia inmediatamente antes. Agregue esto a su build.gradle. Tenga en cuenta el cierre afterEvaluate.
copia esto en la aplicación / archivo Gradle
afterEvaluate {
processDebugGoogleServices.dependsOn switchToDebug
processReleaseGoogleServices.dependsOn switchToRelease
}
Ahora, en cualquier momento: se llama a app: processReleaseGoogleServices, se llamará a nuestra recién definida: app: switchToRelease de antemano. Misma lógica para el debug buildType. Puede ejecutar: app: assembleRelease y la versión de lanzamiento google_services.json se copiará automáticamente en la carpeta raíz del módulo de la aplicación.