Paolo Rotolo
Paolo Rotolo

Reputation: 1283

Use external google-services.json file in library

I'm sharing a single login module across my apps, with a LoginActivity that handles both Facebook and Google auth (logic + UI).
Now, with Facebook it's easy to specify a different ID for each app, overriding the library's facebook_app_id string in the app module.

I didn't find a way to do the same with Google Sign-In because it requires a google-services.json file. In fact, the build fails if I include the file in the app modules and not in the login library.

Error:Execution failed for task ':core:processReleaseGoogleServices'.
File google-services.json is missing. The Google Services Plugin cannot function without it.

The error is self-explanatory, I need google-services.json in the login module. The point is that the other apps have their own google-services.json too.

Is there a way I can add a dummy google-services.json in the Login module and then override it in each app with the real one?

Upvotes: 10

Views: 4999

Answers (1)

Gabriele Mariotti
Gabriele Mariotti

Reputation: 364055

You can't have a google-services.json file in a library. You have to add the dependencies needed, and it is enough to compile to library.

Instead in the projects which will use the library, you have to add the plugin and the google-services.json file.

To do it in your library, in the build.gradle you have to remove the line

//apply plugin: 'com.google.gms.google-services'

Upvotes: 31

Related Questions