Si te encuentras con algún detalle que no entiendes puedes dejarlo en la sección de comentarios y te responderemos rápidamente.
Solución:
Investigué un poco sobre el complemento de servicios de Google y json y encontré las fuentes de este complemento.
Lo primero es lo primero
¡Los servicios de google del complemento de gradle al que hace referencia classpath y con apply es solo un complemento de tiempo de compilación! Por lo tanto, solo influye en el proceso de compilación de su aplicación, ¡pero no en el proceso de tiempo de ejecución!
Este complemento solo pretende ser una ayuda de inicio rápido para integrar los servicios de Google rápidamente en su aplicación. Obviamente, el proceso es algo complicado y no está documentado, por lo que Google debería haber dejado claro qué hace este proceso.
De hecho, encontré el código fuente para la versión del complemento com.google.gms:google-services:1.4.0-beta3 y no encontré ninguna referencia específica en él con respecto a las invitaciones a aplicaciones ni encontré ninguna API de Google para Invitaciones a aplicaciones. (Pero tal vez solo use un proyecto API genérico con su ID de proyecto, no probé esto)
Que hace
El complemento Gradle de Google-Services busca el archivo google-services.json mencionado en su módulo de aplicación. Luego busca configuraciones configuradas como ID de proyecto y ID de seguimiento y similares, generadas por la consola de desarrollo de la API de Google en el archivo google-services.json. A partir de la configuración que encontró, los valores de los recursos de Android se generan en la siguiente ruta:
$project.buildDir/generated/res/google-services/$variant.dirName/values/values.xml
Por ejemplo, para una compilación de depuración de su aplicación:
app/build/generated/res/google-services/debug/values/values.xml
Por ejemplo, si siguió el tutorial de GCM, el archivo JSON incluiría la identificación del proyecto API como el siguiente recurso de Android:
project-id
Por lo tanto, este complemento y el archivo JSON no son esenciales para ejecutar o publicar su aplicación, es solo una ayuda de inicio rápido para generar algunos archivos básicos de recursos de Android para una integración más fácil de funciones específicas de la API de Google.
Observe en el código fuente al que se hace referencia a continuación que el complemento de servicios de Google siempre genera esos recursos de Android para cada variante de la aplicación que se define en su app/build.gradle.
Si no desea eso, debe usar esos recursos generados en las variantes de la aplicación que desea y eliminar las demás. No olvide eliminar la aplicación del complemento de servicios de Google de app/build.gradle, o de lo contrario se regenerará para todas las variantes de la aplicación.
lo que no
¡Este complemento y el archivo JSON NO influyen directamente en el funcionamiento interno de dichas funciones de Google para su aplicación! Si ya ha seguido tutoriales anteriores en developer.android.com sobre cómo integrar, por ejemplo, GCM o Google Analytics, entonces ni siquiera necesita integrar los servicios de google del complemento de gradle o el archivo google-services.json.
Aviso sobre dónde encontré las fuentes.
Después de integrar el complemento Gradle de los servicios de Google y sincronizar su proyecto, Gradle descarga automáticamente la dependencia de los servicios de Google a una ruta similar a esta (en Windows, es posible que deba buscar en su hogar/.gradle para Linux):
C:Usersuser.gradlecachesmodules-2files-2.1com.google.gmsgoogle-services1.4.0-beta3f1580f62e3be313eba041ce19b64fd3f44cf8951google-services-1.4.0-beta3-sources.jar
Si extrae este archivo jar, encontrará dos archivos:
GoogleServicesPlugin.groovy
GoogleServicesTask.java
que contienen el código fuente simple del complemento gradle.
GoogleServicesPlugin.groovy
contiene el manejo de las variantes de la aplicación y definiciones básicas de rutas, etc.
GoogleServicesTask.java
contiene la definición de tarea real, busque el siguiente método para ver lo que realmente hace:
@TaskAction
public void action() throws IOException {
¿Para qué sirve realmente este archivo?
servicios-google.json contiene credenciales de desarrollador y ajustes de configuración, que es necesario verificar mientras se conecta con GoogleApiClient. Aunque su servicio funciona bien con su dispositivo de prueba, ya que detecta su cuenta de desarrollador, pero después de lanzar su aplicación en público, no funcionará sin el archivo json. Así que no lo borres.
La Documentación Oficial dice:
La aplicación crea un GoogleApiClient y especifica a qué ámbitos y API accederá la aplicación. Cuando GoogleApiClient se conecta, el usuario inicia sesión.
Consulte la sección de cómo funciona.
Agregue google-services.json a su módulo y realice una LIMPIEZA y UNA RECONSTRUCCIÓN. Se generará un archivo xml en app/build/generated/res/google-services/debug/values/values.xml con las propiedades de su proyecto y podrá acceder fácilmente como xml normal string. Ejemplo:
String serverClientId = getString(R.string.default_web_client_id);
hay una lista con todas las cadenas y más información en google-service.json doc
Acuérdate de que tienes concesión de valorar esta división .