Created
August 26, 2015 01:24
-
-
Save ZakTaccardi/708d5e2ad7d7d5bbd084 to your computer and use it in GitHub Desktop.
Automatic per-variant google_services.json configurations with Gradle
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//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 | |
} |
It should be def buildType = 'main'
for task switchToRelease
for anybody stopping by on this page, buildType based google-services.json files are now supported.
update your top-level build file to utilize v2.1.0 of google play services (example)
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
classpath 'com.google.gms:google-services:2.1.0'
}
}
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
@dharmik8 the
processDebugGoogleServices
gradle task wont be visible to your build script until the afterEvaluate phase begins.