Skip to content

Instantly share code, notes, and snippets.

@ZakTaccardi
Created August 26, 2015 01:24
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save ZakTaccardi/708d5e2ad7d7d5bbd084 to your computer and use it in GitHub Desktop.
Save ZakTaccardi/708d5e2ad7d7d5bbd084 to your computer and use it in GitHub Desktop.
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
}
@Chrispassold
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