Aucun client ne correspond trouvé pour le nom du paquet (Google Analytics) - multiple productFlavors & buildTypes
contexte:
J'essaie de configurer Google Analytics pour mon application. (avec 4 custom buildTypes
et plus de quelques productFlavors
)
cela fonctionne très bien lorsque je sélectionne le Build Variant
qui a le applicationId
défini à com.my.app.package.name
(le nom du paquet utilisé lors de la génération du google-services.json
). Mais mes autres saveurs ont des applicationides différents.
j'ai suivi le devguide offical pour le mettre en place.
erreur que je reçois lorsque n'importe quelle autre variante de construction est sélectionnée dans Build Variants Tab
(qui a un différent applicationId
(nom du paquet) est comme suit:
erreur: L'exécution a échoué pour la tâche ": app: processAllcategoriesDebugfreeGoogleservices".
Pas de client correspondant trouvé pour le nom de package com.mon.app.package.nom.debug'
explication du Message d'erreur:
dans le nom de la tâche dans le message d'erreur au-dessus de Debugfree
est ma coutume buildType
et Allcategories
est l'un de mes productFlavors
.
je comprends l'erreur et je sais que le nom du paquet est différent de ce que j'ai utilisé lors de la génération du json, mais c'est ce que j'essaie de trouver une solution.
problème:
maintenant, le google-services.json
réside dans le dossier app
et par conséquent je ne suis pas en mesure de les séparer pour chaque saveur de produit en les laissant tomber dans le dossier source spécifique saveur ensemble.
Questions:
- My custom
byildType
pour le débogage des suffixes.debug
à laapplicationId
(nom du paquet). Y a-t-il un moyen que je puisse le faire fonctionner avec legoogle-services.json
qui a ma versionapplicationId
(i.e. sans le suffixe.debug
) - est-il possible d'avoir plusieurs saveurs de produits configurés dans le même fichier
google-services.json
sans utiliser de fichiers et de tâches séparés pour copier le fichier requis dans le dossierapp
. Je sais que cela peut être fait en utilisant letask
, comme mentionné dans ce post . Est-il un moyen plus simple d'en avoir un fichier ou choisir le bon fichier en fonction de la configuration de gradle? - je vois le champ
package_name
dansgoogle-services.json
a le nom du paquetcom.my.app.package.name
. Puis-je ajouter plusieurs noms de paquets manuellement au travail pour construire des variantes? Si oui, comment le faire? Je n'ai trouvé aucune Instruction dans les documentations.
26 réponses
Trouvé ceci:
les services google.le fichier json est généralement placé dans l'application/ répertoire, mais à partir de la version 2.0.0-alpha3 de la prise en charge du plugin était ajouté pour les types de construction , ce qui ferait le répertoire suivant structure valide:
app/src/ main/google-services.json dogfood/google-services.json mytype1/google-services.json ...
vérifiez le nom de votre paquet sur votre google-services.json il doit être identique au nom de votre paquet local de votre application
exemple
"client_info": {
"mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
"android_client_info": {
"package_name": "com.my.app.package.name"
}
dans ce cas, mon nom de paquet local est com.mon Dieu.app.paquet.nom donc j'ai aussi changé le nom de mon paquet dans google-services.json avec mon nom de paquet local
assurez-vous que votre nom de paquet dans "google-services.le fichier json " est le même que le nom du paquet de votre application.
j'ai trouvé la solution:
nous devons créer deux" applications " dans le projet firebase, puis nous pouvons télécharger le fichier json à partir de n'importe quelle application (j'ai téléchargé à partir de l'application flavoured). Il contient les données pour les applications. Nous pouvons simplement copier le fichier json dans le répertoire racine de l'application.
Source: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
chaque fois que vous créez ou mettez à jour
package name
assurez-vous que votre nom de paquet est exactement le même [majuscules et minuscules] 1519130920"
Faire en dessous de l'étape.
1). Vérifier applicationId
in-App "au niveau de 151920920" fichier", 1519130920"
2). Check package_name
dans votre fichier google-services.json
,
3). Vérifier package
dans votre AndroidManifest
fichier
et pour une confirmation complète, faites votre nom de répertoire de paquet i.e. ("com.exemple.application") est aussi le même.
Vous avez besoin de placer des google-services.json
en app/
dir. Et pour chaque type de construction, il devrait y avoir un directeur
app/src
le dossier.
par exemple, si vous avez release et debug:
app/google-services.json
app/src/debug/google-services.json
dans tous les services google.les fichiers json vous devez spécifier correct package_name
selon le type de construction.
par exemple, à l'intérieur de debug dir il devrait être comme {com.myapp}.debug
ouvrez vos services Google.JSON file et cherchez cette section dans le fichier:
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:857242555489:android:46d8562d82407b11",
"android_client_info": {
"package_name": "com.example.duke_davis.project"
}
}
vérifiez si le paquet est identique au nom de votre paquet. Le mien était différent, donc je l'ai changé et ça a marché.
vérifiez si client_id
et package_name
dans les google-services.json a une valeur correcte selon le nom de votre paquet.
vous devez ajouter le fichier mentionné dans le répertoire flavors avec le nom de paquet correspondant dans le champ client_id
et package_name
.
je viens de react native mais je pense que cela s'applique aussi à cette question. Spécifier.
dans le fichier android/app/build.gradle
rechercher applicationId
(dans android
, defaultConfig
)
et s'assurer que cette valeur est la même cette
client[0]client_info.android_client_info.package_name
comme valeur à l'intérieur de google-services.json
.
assurez-vous de renommer ApplicationId dans le fichier gradle après renommer votre paquet
si votre nom de paquet apparaît sur Google-services.fichier json est ok, Aller à gradle.fichier de propriétés. Puis changez votre APPLICATION_ID= " com.ton sac.nom "
vous devez également changer le nom du paquet dans google-services.json
si rien de tout ça n'a fonctionné pour l'un de vous, mon problème était avec un nom de paquet qui n'a pas commencé par un "com". changé, maintenant il fonctionne.
l'espoir qui aide
je pense que vous avez ajouté le fichier firebase json"google-services".json avec le nouveau fichier. Assurez-vous de créer un nouveau fichier vérifiez le lien sur la façon de créer le fichier json à partir de la base de données et il devrait correspondre à votre nom de paquet
la deuxième chose est que si vous changez le nom du paquet, utilisez l'option" Remplacer dans le chemin " lorsque vous cliquez avec le bouton droit sous Fichiers lorsque vous sélectionnez projet à partir de la liste déroulante. Vous devez rechercher le nom du paquet dans l'ensemble projet et de le remplacer !
Espérons que cette aide !
allez dans votre répertoire de projets et créez des dossiers sur app/src path qui ont nommé les saveurs de votre produit (comme Alpha, Beta, Store ou quel que soit le nom de votre saveur). puis copiez vos services google.fichier json à chaque dossier. n'oubliez pas de changer le champ "package_name" sur les services google de votre saveur de chaque produit.le dossier json que vous avez sous-plié.
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.package.name"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
assurez-vous Gradle.l'applicationId d'app est le même que le nom de votre paquet. mon problème était celui-ci et je résolu de cette façon
tout d'abord, ajouter un suffixe au dossier de demande dans Gradle:
yourFlavor {
applicationIdSuffix "yourFlavor"
}
cela va provoquer votre paquet à être nommé
com.domain.yourapp.yourFlavor
puis allez à Firebase dans le cadre de votre projet actuel et ajoutez une autre application android avec ce nom de paquet.
remplace alors les services existants de google.fichier json avec la nouvelle que vous générez avec la nouvelle application.
alors vous finirez avec quelque chose qui a plusieurs sections "client_info". Vous devriez donc vous retrouver avec quelque chose comme ceci:
"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"
}
}
Je l'ai résolu en faisant deux jeux de sources, un gratuit et un payé. Ces deux dossiers contiennent le code java requis et les fichiers de ressources, qui seront modifiés selon les exigences de la saveur particulière. Par exemple, vous souhaitez supprimer le code AdMob dans le payed à la fois des Classes Java et des fichiers Layout.
j'ai résolu le même problème en synchronisant le fichier google-services.json
.
Outils > Firebase > se Connecter à Firebase " > "Sync
j'ai résolu le même problème voici la solution la plus simple: lorsque vous créez firebase connexion suivre ces lignes directrices:
-
ajouter le nom de votre application dans la base de données
-
Ajouter votre demande d'emballage nom (écrire même emballage nom ,vous êtes à l'aide de l'app)
-
lorsque firebase faire google-services.JSON fichier juste télécharger et coller dans votre dossier app
-
Synchroniser votre projet Problème est résolu :)
Merci
allez à google-services.JSON file et dans la partie client, vérifiez le nom du paquet et comparez-le avec le nom du paquet App s'ils sont différents, puis changez le nom du paquet client en fonction du nom de votre paquet app.cela a fonctionné pour moi. bonne chance..
google-services.fichier json-> "nom_du_package": "com.exemple.application.tracker "
App nom du package->package "com.exemple.application.tracker";
il s'agit de vos services google.le fichier json n'appartient pas non plus à votre application(Avez-vous Téléchargé les services google.json pour une autre application?)...alors pour résoudre ceci, faites ce qui suit:
1:Connectez-vous à Firebase et ouvrez votre projet. 2: Cliquez sur L'icône Paramètres et sélectionnez Paramètres du projet. 3: dans votre carte apps, sélectionnez le nom de paquet de l'application pour laquelle vous avez besoin d'un fichier de configuration à partir de la liste. 4: Cliquez sur google-services.json. Après l' télécharger complète, ajouter les nouveaux services google.json vers le dossier racine de votre projet,en remplaçant le dossier existant..ou tout simplement supprimer l'ancien. Il est très normal de télécharger les services google.json pour votre premier projet et ensuite supposer ou oublier que ce google-services spécifiques.json est taillé sur mesure pour votre projet actuel uniquement, car aucun autre parce que tous les projets ont un nom de paquet unique.
j'ai aussi ce problème lorsque je change le nom du paquet de ma demande.
dans votre projet android studio trouver" google-services.json" fichier. De l'ouvrir. et vérifiez si le nom du paquet de votre demande est le même que celui écrit dans ce fichier.
le nom du paquet de votre application et le nom du paquet écrit dans" google-services.le fichier json doit être le même.
Pas de client correspondant trouvé pour le nom de package com.tf' Je suis assez sûr que Le "package_name" dans google-services.json ne correspond pas avec votre" applicationId " dans app gradle.
app gradle:
defaultConfig {
applicationId "com.tf"
minSdkVersion 23
targetSdkVersion 26
versionCode 7
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
google-services.json
"client_info": {
"mobilesdk_app_id": "1:23978655351:android:2b2fece6b961cc70",
"android_client_info": {
"package_name": "in.ac.geu.debug"
}
},
Solution : assurez-vous que les package_name
et applicatoinId
doivent être identiques.
tout simplement. Inscrivez-vous à Android Studio, fermez-le complètement. Rouvrir Android studio et puis de nouveau S'inscrire à Android Studio.
ensuite, essayez de vous connecter à firebase à partir de L'IDE Studio Android. Cette procédure a fonctionné pour moi.
il est simple de résoudre cela: assurez-vous juste du nom du paquet dans votre app/build.gradle file est le même nom de paquet que ceux de votre fichier App Manifest. et assurez-vous que le nom du paquet est correct. Cela devrait résoudre ce