Que fait google de services.json vraiment faire?
Je travaille sur l'ajout de Google Analytics et de la GCM services de mon application en cours.
Sur le guide pour les services de mise en œuvre, google demande aux développeurs de générer un fichier json: google-services.json et le mettre sous répertoire racine de l'application.
J'ai trouvé que même si je supprime ce fichier json à partir de mon application, les services fonctionne toujours.
Veux juste savoir pour sûr, qu'est-ce que ce fichier vraiment pour? Ce que son utilisation et comment ça fonctionne?
Vous devez vous connecter pour publier un commentaire.
J'ai étudié un peu le sujet de la google-services plugin et json et trouvé les sources de ce plugin.
Tout d'abord
La gradle-plugin google-services qui est référencé par le chemin de classe et avec application au moment de la construction du plugin seulement! Donc, il influe uniquement sur l'accumulation de processus de votre application, mais pas le moteur d'exécution de processus à!
Ce plugin ne constitue qu'un guide de démarrage rapide-aide à l'intégration de Google-les services rapidement dans votre application. De toute évidence, le processus est un peu compliqué et ce n'est pas documenté, Google devrait avoir clairement fait savoir que ce processus ne.
En fait, j'ai trouvé le code source de la version plug-in com.google.gms:google-services:1.4.0-beta3 et ne trouver aucune référence en matière de appinvites je n'ai trouver aucune API de Google pour App Invite! (Mais peut-être qu'il utilise une API générique projet avec son id de projet, je n'ai pas essayer ce)
Ce qu'il fait
Google-services gradle-plugin de recherche mentionnés google-services.fichier json dans votre application-module. Il recherche alors les paramètres configurés comme project-id et de suivi-id et tels, généré par l'API de Google developer console dans le google-services.fichier json.
Dans les paramètres il a trouvé, Android les valeurs de ressources sont générées dans le chemin d'accès suivant:
Par exemple pour un debug-construction de votre application:
E. g. si vous avez suivi le GCM tutoriel, le fichier JSON comprendrait l'API du projet de code comme le suivant android-ressource:
Donc ce plugin et fichier JSON ne sont pas essentiels à l'exécution ou la publication de votre application, il est juste un démarrage rapide de l'aide pour générer de base d'android, les fichiers de ressources pour faciliter l'intégration de certaines fonctionnalités de l'API Google.
Avis dans le code source référencés ci-dessous que les google services plugin génère toujours ceux android-ressources pour chaque app-variante qui est défini dans votre application/build.gradle.
Si vous ne voulez pas cela, vous devez utiliser ces ressources générées dans la app-variantes que vous voulez, et de supprimer les autres. N'oubliez pas de retirer le google-services plugin s'applique à partir de l'app/build.gradle, ou sinon, il sera régénéré pour tous les app-variantes.
Ce qu'il n'a pas
Ce plugin et JSON fichier n'influence PAS directement le fonctionnement interne de ladite Google-les fonctionnalités de votre application!
Si vous avez déjà suivi anciens tutoriels sur developer.android.com sur la façon d'intégrer par exemple GCM ou Google Analytics, vous n'avez même pas besoin d'intégrer le gradle-plugin google-les services ou le google-services.fichier json!
Avis sur l'endroit où j'ai trouvé les sources
Après avoir intégré le google-services gradle-plugin et lors de la synchronisation de votre projet, Gradle télécharge automatiquement les google-services dépendance à un chemin similaire à ceci (sur Windows, vous pourriez avoir besoin de regarder dans votre maison/.gradle pour Linux):
Si vous extraire de ce jar-file, vous trouverez deux fichiers:
qui contiennent de la plaine du code source de la gradle-plugin.
contient la manipulation de l'application-les variantes et les définitions de base de chemins d'accès, etc.
contient la réelle définition de tâche, recherchez la méthode suivante pour voir ce qu'il fait vraiment:
Qu'est-ce que ce fichier pour:
google-services.json contient des informations d'identification de développeur et les paramètres de configuration, qui est nécessaire pour vérifier que lors de la connexion avec GoogleApiClient. Si votre service est fonctionne bien avec votre appareil de test comme c'est la détection de votre compte de développeur, mais après la commercialisation de votre application en public, il ne fonctionnera pas sans le fichier json. Afin de ne pas le supprimer.
La Documentation Officielle dit:
L'application crée une GoogleApiClient, en spécifiant les étendues et les Api de l'application aura accès. Lorsque le GoogleApiClient se connecte, l'utilisateur s'est connecté.
Voir le comment ça marche section.
credentials -> click project name -> change old SHA to new one
. Et puis, essayez de générer fichier jsonAjouter google-services.json de votre module et de faire un NETTOYAGE et d'UNE RECONSTRUCTION.
Un fichier xml sera généré dans app/build/generated/res/google-services/debug/values/values.xml avec votre projet de propriétés et vous pouvez facilement y accéder comme normal de la chaîne xml.
Exemple:
il y a une liste avec toutes les chaînes et plus d'infos dans google-service.json doc