Ich versuche, mit google-services.json und verschiedenen Geschmacksrichtungen zu tun. Die Dokumentation besagt, dass wir die Datei im Stammordner benötigen.Gradle erhalten aktuelle Geschmack für eine bestimmte Aufgabe
bekam ich eine Aufgabe, die Datei aus dem Geschmack Ordner in den Stammordner leicht kopieren können:
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"
}
Dann wird in der afterEvaluate zwinge ich
afterEvaluate {
processFlavor1DebugGoogleServices.dependsOn CopyToRoot
processFlavor1ReleaseGoogleServices.dependsOn CopyToRoot
}
Dies funktioniert nur für 1 Geschmack (statisch definiert) Wie macht man das für jeden Geschmack? Ich habe 4 Geschmacksrichtungen. Wie bekomme ich den aktuellen Geschmack, der gerade kompiliert wird?
[UPDATE 1] - auch versucht:
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"
}
}
Aber dies die richtige Datei nicht kopiert wird. Irgendeine Hilfe?
@CommonsWare jede alternative Lösung? Wie man es dynamisch macht? –