gentra gentra - 6 months ago 425
Android Question

google-services.json for different productFlavors

I'm implementing the new Google Cloud Messaging following the guides from the Google Developers page here

I've successfully run and test it. But my problem now is I have different productFlavors with different applicationId/packageName and different GCM Project Id. The

google-services.json
have to be put at the
/app/google-services.json
not the flavors folder.

Is there any way to make the
google-services.json
config different for many flavors?

Answer

Google just included support for flavors on version 2.0 of the play services plugin. Since this version of the gradle plugin com.google.gms:google-services:2.0.0-alpha3

you can do this

app/src/
    flavor1/google-services.json
    flavor2/google-services.json

Version 3.0.0 of the plugin will search for the json file in these locations for flavor1:

/app/src/flavor1/debug/google-services.json
/app/src/debug/flavor1/google-services.json
/app/src/flavor1/google-services.json
/app/src/debug/google-services.json
/app/google-services.json

This worked for me even using flavorDimensions. I have free & paid in one dimension and Mock & Prod in the other dimension. I also have 3 buildTypes: debug, release and staging. This is how it looks in my project for the FreeProd flavor:

enter image description here

If you want more details about what this plugin does with these json files, here it is: https://github.com/googlesamples/google-services/issues/54#issuecomment-165824720

Link to the official docs: https://developers.google.com/android/guides/google-services-plugin

And go here to check the latest version of this plugin: https://bintray.com/android/android-tools/com.google.gms.google-services/view

Comments