Gradle aktuelle Geschmack für eine bestimmte Aufgabe
Ich versuche, Umgang mit google-services.json und verschiedenen Geschmacksrichtungen. Die Dokumentation sagt, dass wir die Datei in den root-Ordner.
Bekam ich eine Aufgabe, die können einfach kopieren Sie die Datei vom Geschmack Ordner in den root-Ordner:
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, in der afterEvaluate ich Kraft
afterEvaluate {
processFlavor1DebugGoogleServices.dependsOn CopyToRoot
processFlavor1ReleaseGoogleServices.dependsOn CopyToRoot
}
Dies funktioniert nur für den Geschmack 1 (statisch definiert). Wie Sie dies tun, für jeden Geschmack? Ich habe 4 Geschmacksrichtungen. Wie man den aktuellen Kernel 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 bedeutet nicht, kopieren Sie die richtige Datei. Keine Hilfe?
- eine alternative Lösung? Wie tun Sie es dynamisch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einen Weg zu gehen, ist erstellen Sie einen Ordner mit dem Namen "google-Dienste" in jedem Geschmack, enthält sowohl die debug-version und die version der json-Datei :
In der buildTypes Abschnitt Ihrer gradle-Datei, fügen Sie diese :
Wird, kopiert das Recht json-Datei im Stammordner des app-Modul automatisch, wenn Sie schalten Sie den build-Variante.
Fügen Sie die beiden Methoden aufgerufen, um den aktuellen Geschmack und den aktuellen build geben Sie an der root-build.gradle
Basierend auf dieser Antwort
Fand ich meine Antwort. Google schließlich unterstützt verschiedene google-Dienste.json pro Geschmack. Sie brauchen nur, um das plugin zu aktualisieren, um com.google.gms:google-Dienste:2.0.0.
Es gibt keine Notwendigkeit, kopieren Sie den json-Datei für die app-Ordner, legen Sie einfach Ihren google-Dienste.json verschiedene Dateien in Ihrem Aufbau Aromen Verzeichnisse.