Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Automatic per-variant google_services.json configurations with Gradle
//append code below to existing build.gradle
def appModuleRootFolder = '.'
def srcDir = 'src'
def googleServicesJson = 'google-services.json'
task switchToDebug(type: Copy) {
def buildType = 'debug'
description = 'Switches to DEBUG google-services.json'
from "${srcDir}/${buildType}"
include "$googleServicesJson"
into "$appModuleRootFolder"
task switchToRelease(type: Copy) {
def buildType = 'release'
description = 'Switches to RELEASE google-services.json'
from "${srcDir}/${buildType}/"
include "$googleServicesJson"
into "$appModuleRootFolder"
afterEvaluate {
processDebugGoogleServices.dependsOn switchToDebug
processReleaseGoogleServices.dependsOn switchToRelease
Copy link

Chrispassold commented Nov 30, 2017

I fixed the problem with processDebugGoogleServices using the code below:

afterEvaluate {
    project.tasks.findByName('processDebugGoogleServices')?.dependsOn switchToDebug
    project.tasks.findByName('processQualityGoogleServices')?.dependsOn switchToQuality
    project.tasks.findByName('processReleaseGoogleServices')?.dependsOn switchToRelease

It checks if the task exists.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment