Sto cercando di gestire google-services.json e diversi sapori. La documentazione dice che abbiamo bisogno del file nella cartella principale.Gradle ha un sapore attuale per un'attività specifica
ho avuto un compito che può facilmente copiare il file dalla cartella sapore alla cartella principale:
task CopyToRoot(type: Copy) {
def appModuleRootFolder = '.'
def srcDir = 'src'
def googleServicesJson = 'google-services.json'
outputs.upToDateWhen { false }
def flavorName = android.productFlavors.flavor1.name
description = "Switches to $flavorName $googleServicesJson"
delete "$appModuleRootFolder/$googleServicesJson"
from "${srcDir}/$flavorName/"
include "$googleServicesJson"
into "$appModuleRootFolder"
}
Poi, nel afterEvaluate forzo
afterEvaluate {
processFlavor1DebugGoogleServices.dependsOn CopyToRoot
processFlavor1ReleaseGoogleServices.dependsOn CopyToRoot
}
Questo funziona solo per 1 sapore (definito staticamente). Come farlo per ogni gusto? Ho 4 sapori. Come ottenere il sapore attuale che viene compilato?
[UPDATE 1] - cercato anche:
task CopyToRoot(type: Copy) {
def appModuleRootFolder = '.'
def srcDir = 'src'
def googleServicesJson = 'google-services.json'
outputs.upToDateWhen { false }
def flavorName = android.productFlavors.flavor1.name
android.applicationVariants.all { variant ->
def flavorString = variant.getVariantData().getVariantConfiguration().getFlavorName()
println('flavorString: ' + flavorString)
description = "Switches to $flavorString $googleServicesJson"
delete "$appModuleRootFolder/$googleServicesJson"
from "${srcDir}/$flavorString/"
include "$googleServicesJson"
into "$appModuleRootFolder"
}
}
Ma questo non copia il file corretto. Qualsiasi aiuto?
@CommonsWare qualsiasi soluzione alternativa? Come farlo in modo dinamico? –