No se encontró ningún cliente coincidente para nombre de paquete (Google Analytics) - multiple productFlavors & buildTypes


Context:

Estoy tratando de configurar Google Analytics para mi aplicación. (teniendo 4 costumbre buildTypes y más de unos pocos productFlavors)

Funciona bien cuando selecciono el Build Variant que tiene el applicationId establecido en com.my.app.package.name (el nombre del paquete utilizado al generar el google-services.json). Pero, mis otros sabores tienen diferentes aplicaciones.

Seguí el oficial devguide para configurarlo.

Error que obtengo cuando se selecciona cualquier otra variante de compilación en Build Variants Tab (que tiene un diferente applicationId (nombre del paquete) es el siguiente:

Error: Falló la ejecución de la tarea ':app:processAllcategoriesDebugfreeGoogleservices'.

No coincidentes cliente encontró para el nombre del paquete " com.mi.app.paquete.nombre.debug'

Explicación del Mensaje de error:

En el nombre de la tarea en el mensaje de error anterior Debugfree es mi personalizado buildType y Allcategories es uno de mis productFlavors.

entiendo el error y saber el nombre del paquete es diferente de lo que usé al generar el json, pero eso es lo que estoy tratando de encontrar una forma de evitarlo.

Problema:

Ahora, el google-services.json reside en la carpeta app y, por lo tanto, no puedo separarlos para cada tipo de producto al soltarlos en la carpeta de conjunto de origen específico del tipo.

Preguntas:

  1. Mi personalizado byildType para depurar sufijos .debug al applicationId (nombre del paquete). Ser hay una manera que puedo hacer que funcione con el google-services.json que tiene mi liberación applicationId (es decir, sin el sufijo .debug)
  2. ¿Existe una manera de tener varios tipos de productos configurados en el mismo archivo google-services.json sin usar archivos y tareas separados para copiar el archivo requerido a la carpeta app? Sé que se puede hacer usando task como se menciona en este post. ¿Hay una forma más sencilla de tener un solo archivo o elegir el archivo correcto basado en la configuración de gradle?
  3. Veo el campo package_name en google-services.json tiene el nombre del paquete com.my.app.package.name. ¿Puedo agregar varios nombres de paquetes manualmente para que funcionen en todas las variantes de compilación? En caso afirmativo, ¿cómo hacerlo? No se pudo encontrar ninguna instrucción en la documentación.
Author: Community, 2016-01-25

26 answers

Encontré esto:

Los servicios de Google.el archivo json generalmente se coloca en la aplicación/ directorio, pero a partir de la versión 2.0.0-alpha3 del soporte plugin fue agregado para tipos de compilación, que haría el siguiente directorio estructura válida:

app/src/
    main/google-services.json
    dogfood/google-services.json
    mytype1/google-services.json
    ...

Fuente

Fuente 2

 151
Author: AndroidMechanic - Viral Patel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-25 12:09:25

Comprueba el nombre de tu paquete en tus servicios de Google.json debería ser lo mismo con el nombre del paquete local de su aplicación

Ejemplo

"client_info": {
    "mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
    "android_client_info": {
      "package_name": "com.my.app.package.name"
    }

En este caso mi nombre de paquete local es com.my.app.package.name así que también he cambiado el nombre de mi paquete en google-services.json con mi nombre de paquete local

 147
Author: Muhammed Fasil,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-13 07:07:15

Asegúrese de que el nombre de su paquete esté en "google-services".el archivo json " es el mismo que el nombre del paquete de sus aplicaciones.

 52
Author: cahit beyaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-21 13:40:28

He encontrado la solución:

Tenemos que crear dos "aplicaciones" en el proyecto firebase, y luego podemos descargar el archivo json desde cualquier aplicación (he descargado desde la aplicación con sabor). Contendrá los datos de ambas aplicaciones. Simplemente podemos copiar el archivo json al directorio raíz de la aplicación.

Fuente: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html

 37
Author: Usman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-27 10:58:45

Cada vez que cree o actualice package name Asegúrese de que el nombre de su paquete sea exactamente el mismo [Mayúsculas y minúsculas]

Haga el paso siguiente.

1). Compruebe applicationId en el archivo de nivel de aplicación gradle,

2). Marque {[3] } en su archivo google-services.json,

3). Marque {[5] } en su archivo AndroidManifest

Y para la confirmación completa haga su nombre de directorio del paquete de trabajo i.e. ("com.ejemplo.app") es también lo mismo.

 21
Author: Ravi Vaniya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-18 09:40:18

Debe colocar google-services.json en app/ dir. Y para cada tipo de construcción, debe haber un director acorde en app/src carpeta.

Por ejemplo, si tiene release y debug:

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

En todos los servicios de Google.archivos json debe especificar package_name correcto según el tipo de compilación.

Por ejemplo, dentro del directorio de depuración debería ser como {com.myapp}.debug

 19
Author: Bogdan Ustyak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-10 04:10:22

Abre tus servicios de Google.json y busque esta sección en el archivo:

"client": [
{
  "client_info": {
    "mobilesdk_app_id": "1:857242555489:android:46d8562d82407b11",
    "android_client_info": {
      "package_name": "com.example.duke_davis.project"
    }
  }

Compruebe si el paquete es el mismo que el nombre de su paquete. El mío era diferente, así que lo cambié y funcionó.

 13
Author: DAVIS BENNY 15MIS0426,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-03 04:09:49

Compruebe si client_id y package_name en los servicios de Google.json tiene un valor correcto de acuerdo con su nombre de paquete.

Debe agregar el archivo mencionado en el directorio de sabores con el nombre de paquete correspondiente en el campo client_id y package_name.

 10
Author: SHi ON,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-30 17:21:55

Vengo de react native, pero creo que esto también se aplica a esta pregunta. Especificar.

Dentro del archivo android/app/build.gradle buscar applicationId (dentro android, defaultConfig)

Y asegúrese de que ese valor es el mismo este

client[0]client_info.android_client_info.package_name

Como el valor dentro de google-services.json.

 10
Author: ThomasReggi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-01 18:16:07

Asegúrate de renombrar applicationId en el archivo gradle después de renombrar tu paquete

 9
Author: Arsalan Shah,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-12-21 05:02:54

Si el nombre de su paquete en Google-services.archivo json está bien, Ve a Gradle.archivo de propiedades. A continuación, cambie su APPLICATION_ID="com.yourpackage.name"

 6
Author: Dulal Kisku,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-12 04:09:15

También necesita cambiar el nombre del paquete en google-services.json

 6
Author: S H Mehdi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-01 08:17:29

Si nada de esto funcionó para uno de ustedes, mi problema fue con un nombre de paquete que no comenzó con un 'com'. lo cambié, ahora funciona.

Espero que ayude

 4
Author: eiran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-04 15:50:26

Creo que ha agregado el archivo firebase json "google-services".json con el nuevo archivo. Asegúrese de crear un nuevo archivo compruebe el enlace sobre cómo crear un archivo json desde firebase y debería coincidir con el nombre de su paquete

Lo segundo es que si está cambiando el nombre del paquete use la opción "reemplazar en ruta" cuando haga clic con el botón derecho en archivos cuando seleccione proyecto del menú desplegable. Debe buscar el nombre del paquete en todo el proyecto y reemplazarlo !

Espero que esto ayude !

 4
Author: Ashok Kumar K R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-17 12:07:37

Vaya al directorio de su proyecto y cree carpetas en la ruta app/src que nombraron los tipos de productos (como Alfa, Beta, Tienda o el nombre de su tipo). luego copie sus servicios de Google.archivo json a cada carpeta. no olvides cambiar el campo "package_name" en los servicios de Google de cada tipo de producto.archivo json que subcarpetas.

 3
Author: Osman Yalın,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-13 14:44:42
android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.package.name"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

Asegúrate de Gradle.applicationid de la aplicación es el mismo nombre de su paquete. mi problema era este y resolví de esta manera

 3
Author: Bayar Şahintekin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-17 09:12:13

En primer lugar, agregue un sufijo al paquete de aplicación en Gradle:

yourFlavor {
   applicationIdSuffix "yourFlavor"
}

Esto hará que su paquete se llame

com.domain.yourapp.yourFlavor

Luego ve a Firebase bajo tu proyecto actual y agrega otra aplicación de Android con este nombre de paquete.

Luego reemplace los servicios de Google existentes.archivo json con el nuevo que generes con la nueva aplicación en él.

Entonces terminará con algo que tiene varias secciones "client_info". Así que deberías terminar con algo así:

"client_info": {
    "mobilesdk_app_id": "YOUR APP INFO",
    "android_client_info": {
      "package_name": "com.domain.yourapp"
    }
  }

"client_info": {
    "mobilesdk_app_id": "YOUR APP INFO - will be different then other app info",
    "android_client_info": {
      "package_name": "com.domain.yourapp.yourFlavor"
    }
  }
 3
Author: Droid Chris,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-17 20:51:04

Lo resolví haciendo dos conjuntos de fuentes , uno gratis y otro pagado. Ambas carpetas contendrán el código java requerido y los archivos de recursos, que se editarán según los requisitos del tipo particular. Por ejemplo, le gustaría eliminar el Código AdMob en el Pago tanto de las Clases Java como de los archivos de diseño.

 2
Author: Abhiroj Panwar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-13 10:48:50

Resolví el mismo problema al volver a sincronizar el archivo google-services.json.

Herramientas > Firebase > Conectarse a Firebase > Sincronizar

 2
Author: Nabin Bhandari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-09 11:42:17

Resolví el mismo problema aquí está la solución simple: cuando cree conexión firebase siga estas pautas:

  • Agregue el nombre de su aplicación en firebase

  • Agregue el nombre de su aplicación pakage (escriba el mismo nombre pakage ,que está utilizando en la aplicación)

  • Cuando firebase haga google-services.json archivo descargar y pegar en su carpeta de la aplicación

  • Sincronizar el problema del proyecto está resuelto :)

    Gracias

 2
Author: Chaudhary Nouman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-01 12:01:44

Vaya a google-services.el archivo json y en la parte del cliente comprueban el nombre del paquete y lo comparan con el nombre del paquete de la aplicación si son diferentes entonces cambian el nombre del paquete del cliente según su nombre del paquete de la aplicación funcionó para mí la mejor de las suertes..

Servicios de Google.json file - > "package_name": "com.ejemplo.aplicación.rastreador "

Nombre del paquete de la aplicación- > paquete " com.ejemplo.aplicación.tracker";

 2
Author: Shah Rukh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-17 08:33:47

Esto significa sus servicios de Google.el archivo json tampoco pertenece a su aplicación (¿descargó los servicios de Google?).json para otra aplicación?) do así que para resolver esto haga lo siguiente:

1:Inicia sesión en Firebase y abre tu proyecto. 2: Haga clic en el icono Configuración y seleccione Configuración del proyecto. 3: En la tarjeta Your apps, seleccione el nombre del paquete de la aplicación para la que necesita un archivo de configuración de la lista. 4: Haga clic en google-servicios.json. Después de que se complete la descarga,agregue la nueva google-servicios.json a la carpeta raíz del proyecto,reemplazando la existente..o simplemente borra el viejo. Es muy normal descargar los servicios de Google.json para su primer proyecto y luego asumir u olvidar que este específico google-services.json se adapta solo para su proyecto actual, porque no para cualquier otro porque todos los proyectos tienen un nombre de paquete único.

 1
Author: RileyManda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-24 20:16:59

También tengo este problema cuando cambio el nombre del paquete de mi aplicación.

En su proyecto de Android studio encontrar "google-servicios.archivo json". Ábralo. y compruebe si el nombre del paquete de su aplicación es el mismo que está escrito en este archivo.

El nombre del paquete de su aplicación y el nombre del paquete escrito en "google-services.el archivo json" debe ser el mismo.

 1
Author: mehmoodnisar125,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-13 04:37:36

No se encontró ningún cliente coincidente para package name 'com.tf" Estoy bastante seguro de que El "package_name" en google-services.json no coincide con tu "applicationId" en app gradle.

Aplicación gradle:

defaultConfig {
        applicationId "com.tf"
        minSdkVersion 23
        targetSdkVersion 26
        versionCode 7
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

Servicios de Google.json

"client_info": {
        "mobilesdk_app_id": "1:23978655351:android:2b2fece6b961cc70",
        "android_client_info": {
          "package_name": "in.ac.geu.debug"
        }
      },

Solución : Solo asegúrese de que package_name y applicatoinId deben ser iguales.

 0
Author: Kailash Karki,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-25 14:25:59

Simplemente. Cierre sesión en Android Studio, ciérrelo por completo. Vuelva a abrir Android Studio y, a continuación, vuelva a iniciar sesión en Android Studio.

Luego intente conectarse a firebase desde el IDE de Android Studio. Este procedimiento funcionó para mí.

 -1
Author: Prakash P,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-16 12:04:34

Es sencillo resolver esto: solo asegúrate del nombre del paquete en tu app/build.gradle file es el mismo nombre de paquete que los del archivo de manifiesto de tu App. y asegúrese de que el nombre del paquete es correcto. Eso debería resolver esto

 -1
Author: James Idowu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-16 20:27:08