Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i keep different configurations for my android app with GCM 3.0

I want to keep different configurations for my debug/release build variants but apparently, the google-services.json file only allows for one. Is there any alternative? Is there a way to keep several files?

like image 346
Roberto Betancourt Avatar asked Jun 17 '15 20:06

Roberto Betancourt


1 Answers

I'm using this workaround to solve a similar issue with build flavours.

The flavour specific google-service.json files are stored under /app/src/{flavour-name}/google-service.json. To copy this to the /app dir the following code may be added to the /app/build.gradle file:

    gradle.taskGraph.beforeTask { Task task ->
        if(task.name ==~ /process.*GoogleServices/) {
            android.applicationVariants.all { variant ->
                if(task.name ==~ /(?i)process${variant.name}GoogleServices/){ 
                    copy {
                        from "/src/${variant.flavorName}"
                        into '.'
                        include 'google-services.json'
                    }
                }
            }
        }
    }

In the absence of flavours (as I understand your question) the following /app/build.gradle code snippet did the job in an android studio test project:

    gradle.taskGraph.beforeTask { Task task ->
        if(task.name ==~ /process.*GoogleServices/) {
            android.applicationVariants.all { variant ->
                if(task.name ==~ /(?i)process${variant.name}GoogleServices/){
                    copy {
                        from '.'
                        into '.'
                        rename { String fileName ->
                            fileName.replace("google-services-${variant.name}.json", 'google-services.json')
                        }
                        include "google-services-${variant.name}.json"
                    }
                }
            }
        }
    }

The snippet expects a google-services-debug.json and a google-services-release.json in your /app dir and copies and renames it to google-services.json.

Hope this helps.

like image 57
Martin S. Avatar answered Sep 26 '22 06:09

Martin S.