Reputation: 33438
Context:
I'm trying to set up Google Analytics for my app. (having 4 custom buildTypes
and more than a few productFlavors
)
It works fine when I select the Build Variant
which has the applicationId
set to com.my.app.package.name
(the package name used when generating the google-services.json
). But, my other flavors have different applicationIds.
I followed the offical devguide to set it up.
Error I get when any another build variant is selected in Build Variants Tab
(which has a different applicationId
(package name) is as follows:
Error:Execution failed for task ':app:processAllcategoriesDebugfreeGoogleServices'.
No matching client found for package name 'com.my.app.package.name.debug'
Explanation of Error Message:
In the task name in the error message above Debugfree
is my custom buildType
and Allcategories
is one of my productFlavors
.
I understand the error and know the package name is different from what i used when generating the json, but that is what I'm trying to figure a way around.
Problem:
Now, the google-services.json
resides in the app
folder and hence I am not being able to separate them out for each product flavor by dropping them in the flavor specific source set folder.
Questions:
byildType
for debugging suffixes .debug
to the applicationId
(package name). Is there a way I can make it work with the google-services.json
which has my release applicationId
(i.e. without the suffix .debug
)google-services.json
file without using separate files and tasks to copy the required file to app
folder. I know it can be done using task
as mentioned in this post. Is there a simpler way to just have one file or pick right file based on gradle configuration?package_name
field in google-services.json
has the package name com.my.app.package.name
. Can I add multiple package names manually to work for all build variants? If yes, how to do that? Could not find any instructions in documentations.Upvotes: 672
Views: 802628
Reputation: 1022
Only two easy step to change package name:
Then add your new package name in "applicationId", now then click on "sync now" the project.
Note: If your "google-services.json" file is added in project then change your name package name there inside "client_info"
package name inside "google-services.json"
That's all. No need to change package name anywhere else.
Upvotes: 20
Reputation: 405
I forgot to add SHA certificate fingerprint
in Firebase. I just re-imported google-services.json
and it worked
Upvotes: 1
Reputation: 770
If your applicationId
is different between your buildTypes
, you can add those particular artifacts to specific dependency flavor like releaseImplementation
for example.
Upvotes: 1
Reputation: 1793
In my case I forgot google-services.json in app root directory which was for different flavour. It was used by default instead of using json stored in flavour's folder. This messed up plugin and since package names were not matching it failed.
Wisdom I taught, check for all google-services.json in your project structure when this problem occurs.
Upvotes: 21
Reputation: 571
If anyone change their existing package name then sometimes it makes problem like that, so you should change local package name, build.gradle file package name and if your project have any google-services.json file then simply you need to change your JSON file package name too.
Old File look like that
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:517104510151:android:8b7ed3989db24a6f928ae2",
"android_client_info": {
"package_name": "com.techsajib.oldapp"
}
},
New File look like that
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:517104510151:android:8b7ed3989db24a6f928ae2",
"android_client_info": {
"package_name": "com.techsajib.newapp"
}
},
Note: sometimes JSON file have several package name so change all of them
Upvotes: 21
Reputation: 1611
Whenever you create or update
package name
Make sure your package name is exactly the same [Upper case and lower case matters]
Do below step.
1). Check applicationId
in App level gradle
file,
2). Check package_name
in your google-services.json
file,
3). Check package
in your AndroidManifest
file
and for full confirmation make sure that your working package directory name i.e.("com.example.app") is also the same.
EDIT [ Any one who is facing this issue in
productFlavour
scenario, go check out Droid Chris's Solution ]
Upvotes: 85
Reputation: 6059
This error occurs when you have a Google Services Json file downloaded in your project whose Package name doesn't match with your Project's package name.
Recently renamed the project's package name?
It does update all the classes but not the Gradle File. So check if your package name is correct in your Gradle, and also maybe Manifest too.
Upvotes: 59
Reputation: 1326
1.Verify Package name and Application ID should be same
2.Verify google-services.json package name which is available in app folder
Upvotes: 32
Reputation: 2286
No matching client found for package name 'com.tf' I am pretty sure that the "package_name" in google-services.json is not matching with your "applicationId" in app gradle.
app gradle:
defaultConfig {
applicationId "com.tf" //replace with the package_name in google-services.json =
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: Just make sure the package_name
and applicationId
must be same.
Upvotes: 186
Reputation: 1285
Check for applicationIdSuffix
in your app's build.gradle file. See if it is concatenating any text to your applicationId
. If so, remove it.
Upvotes: 1
Reputation: 8576
Check your package name on your google-services.json it should be same with your local package name of your app
Example
"client_info": {
"mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
"android_client_info": {
"package_name": "com.my.app.package.name"
}
In this case my local package name is com.my.app.package.name so also i have changed my package name in google-services.json with my local package name
Upvotes: 728
Reputation: 3783
First off, add a suffix to the application package in Gradle:
yourFlavor {
applicationIdSuffix "yourFlavor"
}
This will cause your package to be named
com.domain.yourapp.yourFlavor
Then go to Firebase under your current project and add another android app to it with this package name.
Then replace the existing google-services.json file with the new one you generate with the new app in it.
Then you will end up with something that has multiple "client_info" sections. So you should end up with something like this:
"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"
}
}
Upvotes: 71
Reputation: 447
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.package.name"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
make sure Gradle.app's applicationId is same your package name. my problem was this and I solved this way
Upvotes: 3
Reputation: 271
It is simple to solve this: just make sure the package name in your app/build.gradle file is this same package name as the ones in your App Manifest file. and ensure the package name is correct. That should solve this
Upvotes: -3
Reputation: 1527
I also get this issue when i change package name of my application.
In your android studio project find "google-services.json" file. Open it. and check whether package name of your application is same as written in this file.
The package name of your application and package name written in "google-services.json" file must be same.
Upvotes: 2
Reputation: 104
Just simple. Sign-out from Android Studio, close it completely. Reopen Android studio and then again Sign-In to Android Studio.
Then try to connect to firebase from the Android studio IDE. This procedure worked for me.
Upvotes: -1
Reputation: 1298
You also need to change package name in google-services.json
Upvotes: 10
Reputation: 63
I think you have added firebase json file "google-services".json with the new file. Make sure to create a new file check the link on how to create json file from firebase and it should match with your package name
Second thing is that if you are changing the package name use the option " replace in path" when you right click under files when you select project from the drop down. You have to search for package name in the whole project and replace it !
Hope this helps !
Upvotes: 6
Reputation: 39
Go to google-services.json file and in client part check the package name and compare it with App package name if they are different then change the client package name according to your app package name it worked for me best of luck..
google-services.json file-> "package_name": "com.example.application.tracker"
App package name->package "com.example.application.tracker";
Upvotes: 3
Reputation: 2651
This means your google-services.json file either does not belong to your application(Did you download the google-services.json for another app?)...so to solve this do the following:
1:Sign in to Firebase and open your project. 2:Click the Settings icon and select Project settings. 3:In the Your apps card, select the package name of the app you need a config file for from the list. 4:Click google-services.json. After the download completes,add the new google-services.json to your project root folder,replacing the existing one..or just delete the old one. Its very normal to download the google-services.json for your first project and then assume or forget that this specific google-services.json is tailored for your current project alone,because not any other because all projects have a unique package name.
Upvotes: 1
Reputation: 200
I solved the same problem here is simple solution: when you create firebase connection follow these guidelines:
Add your application name in firebase
Add your application pakage name (write same pakage name ,you are using in app)
when firebase make google-services.json file just download it and paste it in your app folder
Sync your project Problem is solved :)
Thank you
Upvotes: 2
Reputation: 630
go your project directory and create folders on app/src path that named your product flavors (like Alpha, Beta, Store or what ever your flavor's name is). then copy your google-services.json file to each folder. don't forget to change "package_name" field on your each product flavor's google-services.json file that you subfoldered.
Upvotes: 3
Reputation: 16429
I solved the same problem by re-syncing the file google-services.json
.
Tools > Firebase > Connect to Firebase > Sync
Upvotes: 3
Reputation: 59505
Im coming from react native but I think that this applies to this question as well. To specify.
Within the file android/app/build.gradle
search for applicationId
(within android
, defaultConfig
)
and ensure that that value is the same this
client[0]client_info.android_client_info.package_name
as the value within google-services.json
.
Upvotes: 11
Reputation: 1388
if none of it worked for one of you guys, my problem was with a package name that didn't start with a 'com'. changed it, now it works.
hope that helps
Upvotes: 4
Reputation: 81
If your package name on Google-services.json file is okay, Go to gradle.properties file. Then change your APPLICATION_ID="com.yourpackage.name"
Upvotes: 8
Reputation: 228
Open your Google-services.json file and look for this section in the file:
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:857242555489:android:46d8562d82407b11",
"android_client_info": {
"package_name": "com.example.duke_davis.project"
}
}
check whether the package is the same as your package name. Mine was different, so I changed it and it worked.
Upvotes: 17
Reputation: 5137
make sure your package name in "google-services.json" file is same with your apps's package name.
Upvotes: 78
Reputation: 2401
I have found the solution:
We have to create two "apps" in the firebase project, and then we can download json file from any one app (I downloaded from the flavoured app). It will contain the data for both the apps. We can simply copy the json file to the app's root directory.
Source: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
Upvotes: 92