2017-07-30 2 views
0

J'ai fait très attention de ne pas introduire les dépendances Google-Android dans mon application Android au fil des ans et j'ai deux saveurs qui gardent cette ségrégation, withAmazon et withGoogle.Appliquer GMS google-services plugin sous condition

app 
|_ main 
|_ test 
|_ withAmazon 
|_ withGoogle 

Récemment, je l'ai expérimenté avec Firebase Analytics qui est très bien un produit Google OHA only et je ne crois pas qu'il est censé travailler en dehors de l'écosystème Google (bien qu'il y ait some reports qu'il fait). Une partie de la configuration de Firebase est l'application du plugin google-services.

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

Cependant, la saveur withAmazon ne comprend pas google-service.json ... parce que ... eh bien, ce n'est pas pour Google.

app 
|_ main 
|_ test 
|_ withAmazon 
    |- java 
    |- AndroidManifest.xml 
|_ withGoogle 
    |- java 
    |- AndroidManifest.xml 
    |- google-services.json 

... mais depuis Gradle plugins appear to need to have to be applied project wide est-il possible d'appliquer uniquement les gms plugin l'une des saveurs? La construction échoue dans le scénario décrit ci-dessus lors de la compilation de la saveur Amazon car elle se plaint de l'inexistant google-services.json ... ce qui est correct.

Pour l'instant, mon contournement consiste à déplacer le google-services.json sous le répertoire app/. Problème résolu. Cependant, il ne me semble pas juste que mon diviseur très net entre le système d'exploitation Android «pur» est empiété sur Google.

Toute assistance reçue gracieusement.

+0

Ajoutez ensuite à firebase une partie de la saveur 'withGoogle', ou déplacez google-services.json' vers la saveur principale. – Shark

Répondre

1

J'ai résolu ce problème en modifiant mon parent build.gradle comme tel; Maintenant, le plugin (et les dépendances Google Play Services associées) ne sont pas ajoutés à la saveur Amazon de mon application. De plus, le google-services.json vit maintenant sous la saveur "withGoogle".

Remarque: withGoogle est une définition définie ailleurs avec la valeur "withGoogle". Accusé de réception: https://stackoverflow.com/a/43336869/1348379