패키지 이름(Google Analytics)과 일치하는 클라이언트를 찾을 수 없음 - 다중 제품Flavors & build종류들
컨텍스트:
내 앱에 대한 Google Analytics를 설정하려고 합니다.(4개의 사용자 지정)buildTypes
몇 개 .productFlavors
)
다음을 선택하면 잘 작동합니다.Build Variant
그것을 가지고 있는.applicationId
로 설정한.com.my.app.package.name
시 (" 성생시패이키름지는되용사)이▁used")google-services.json
제 다른를 가지고 하지만 제 다른 맛들은 다른 applicationIds를 가지고 있습니다.
공식 개발 가이드에 따라 설치했습니다.
에서 다른 빌드 변형을 선택하면 오류가 발생합니다.Build Variants Tab
는 (으)로 표시됩니다.applicationId
이름은 다음과
오류: ':app:processAll categoriesDebugfreeGoogle 서비스' 작업을 실행하지 못했습니다.
패키지 이름 'com.my.app.package.name .dll'과(와) 일치하는 클라이언트를 찾을 수 없습니다.
오류 메시지 설명:
의 오류 에 있는 Debugfree
의 사용자 정의 ㅠㅠㅠㅠbuildType
그리고.Allcategories
나의 것 중 하나입니다.productFlavors
.
오류를 이해하고 패키지 이름이 json을 생성할 때 사용한 것과 다르다는 것을 알고 있지만, 그것이 제가 해결책을 찾고 있는 것입니다.
문제:
이, 제.google-services.json
는 에상니다합에 위치해 있습니다.app
폴더를 사용하기 때문에 각 제품의 맛별로 맛별 소스 세트 폴더에 떨어뜨려 구분할 수 없습니다.
질문:
- 사용자 정의 의습관
byildType
접사깅용디를 경우.debug
에▁applicationId
(패키지 이름).내가 그것을 작동시킬 수 있는 방법이 있습니까?google-services.json
은 내 발표를 있습니다 ㅠㅠㅠㅠㅠㅠㅠㅠㅠapplicationId
(즉, 접미없이사) 없이).debug
) - 여러 제품 맛을 동일하게 구성할 수 있는 방법이 있습니까?
google-services.json
및을 필한파복일사위기로 복사합니다.app
폴더를 누릅니다.다음을 사용하여 수행할 수 있음을 알고 있습니다.task
본 투고에서 언급한 바와 같이그래들 구성을 기반으로 파일을 하나만 선택하거나 올바른 파일을 선택할 수 있는 더 간단한 방법이 있습니까? - 나는 봅니다.
package_name
에 출전하다.google-services.json
이름이 패지이 포함름키입니다.com.my.app.package.name
모든 빌드 변형에서 작동하도록 여러 패키지 이름을 수동으로 추가할 수 있습니까?만약 그렇다면, 그것을 어떻게 합니까?설명서에서 지침을 찾을 수 없습니다.
Google-services.json에서 패키지 이름을 확인하십시오. 이 이름은 앱의 로컬 패키지 이름과 같아야 합니다.
예
"client_info": {
"mobilesdk_app_id": "1:6596814400689:android:65d6f25f5006145",
"android_client_info": {
"package_name": "com.my.app.package.name"
}
이 경우 저의 로컬 패키지 이름은 com.my.app.package.name 이므로 Google-services.json의 패키지 이름도 로컬 패키지 이름으로 변경했습니다.
찾은 항목:
Google-services.json 파일은 일반적으로 app/디렉토리에 배치되지만 버전 2.0.0-alpha3부터는 빌드 유형에 대한 플러그인 지원이 추가되어 다음 디렉터리 구조가 유효합니다.
app/src/ main/google-services.json dogfood/google-services.json mytype1/google-services.json ...
패키지 이름 'com.tf '에 대해 일치하는 클라이언트를 찾을 수 없습니다. Google-services.json의 "package_name"이 앱 그라들의 "applicationId"와 일치하지 않는다고 확신합니다.
앱 그라들:
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"
}
구글 서비스.json
"client_info": {
"mobilesdk_app_id": "1:23978655351:android:2b2fece6b961cc70",
"android_client_info": {
"package_name": "in.ac.geu.debug"
}
},
솔루션:그냥 확인하세요.package_name
그리고.applicationId
동일해야 합니다.
해결책을 찾았습니다.
우리는 파이어베이스 프로젝트에서 두 개의 "앱"을 만들어야 하며, 그런 다음 하나의 앱에서 json 파일을 다운로드할 수 있습니다(저는 맛을 낸 앱에서 다운로드했습니다).두 앱에 대한 데이터가 모두 포함됩니다.우리는 json 파일을 앱의 루트 디렉터리에 복사하기만 하면 됩니다.
출처: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
생성하거나 업데이트할 때마다
package name
패키지 이름이 정확히 동일한지 확인하십시오 [대소문자 구분]
아래 단계를 수행합니다.
. 확인applicationId
레벨 앱수서에서gradle
데이터베이스,
. 확인package_name
의 신의에google-services.json
데이터베이스,
. 확인package
의 신의에AndroidManifest
전체 확인을 위해 작업 패키지 디렉터리 이름("com.dll.app")도 동일한지 확인합니다.
"google-services.json" 파일의 패키지 이름이 앱의 패키지 이름과 동일한지 확인합니다.
먼저 Gradle의 응용 프로그램 패키지에 접미사를 추가합니다.
yourFlavor {
applicationIdSuffix "yourFlavor"
}
패키지 이름이 지정됩니다.
com.domain.yourapp.yourFlavor
그런 다음 현재 프로젝트의 Firebase로 이동하여 이 패키지 이름으로 다른 Android 앱을 추가합니다.
그런 다음 기존 Google-services.json 파일을 새 앱이 포함된 새 파일로 바꿉니다.
그러면 "client_info" 섹션이 여러 개 있는 것으로 끝납니다.그래서 당신은 다음과 같은 결과를 얻어야 합니다.
"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"
}
}
이 오류는 패키지 이름이 프로젝트의 패키지 이름과 일치하지 않는 Google 서비스 Json 파일을 프로젝트에 다운로드한 경우에 발생합니다.
프로젝트의 패키지 이름을 최근에 변경했습니까?
모든 클래스를 업데이트하지만 Gradle File은 업데이트하지 않습니다.그래서 당신의 Gradle에 당신의 패키지 이름이 맞는지 확인하고, 매니페스트도 확인하세요.
은 야합해다를 넣어야 .google-services.json
안으로app/
각 유형에 dir에 . 그리고 각 빌드 유형에 대해, 다음에 해당하는 디렉터가 있어야 합니다.app/src
폴더를 누릅니다.
예를 들어 릴리스 및 디버그가 있는 경우:
app/google-services.json
app/src/debug/google-services.json
"google-services.json"을 .package_name
빌드 유형에 따라
들어 는 debugdir와 .{com.myapp}.debug
1.패키지 이름과 애플리케이션 ID가 동일해야 합니다.
2. 앱 폴더에서 사용할 수 있는 google-services.json 패키지 이름을 확인합니다.
확인해 보다client_id
그리고.package_name
Google-services.json에서 패키지 이름에 따라 올바른 값이 지정됩니다.
언급된 파일을 해당 패키지 이름이 있는 플레이버 디렉토리에 추가해야 합니다.client_id
그리고.package_name
판들판▁field들..
나의 경우, 나는 다른 맛을 위한 앱 루트 디렉터리에 있는 구글-services.json을 잊었습니다.flavor의 폴더에 저장된 json을 사용하는 대신 기본적으로 사용되었습니다.이로 인해 플러그인이 엉망이 되었고 패키지 이름이 일치하지 않아 실패했습니다.
내가 가르친 지혜, 이 문제가 발생하면 당신의 프로젝트 구조에 있는 모든 구글 서비스.json을 확인하세요.
패키지 이름을 바꾼 후 Gradle 파일의 ApplicationId 이름을 변경해야 합니다.
기존 패키지 이름을 변경하는 사람이 있으면 때때로 그렇게 문제가 발생하므로 로컬 패키지 이름, build.gradle 파일 패키지 이름을 변경해야 하며 프로젝트에 Google-services.json 파일이 있으면 JSON 파일 패키지 이름도 변경해야 합니다.
오래된 파일은 그렇게 보입니다.
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:517104510151:android:8b7ed3989db24a6f928ae2",
"android_client_info": {
"package_name": "com.techsajib.oldapp"
}
},
새 파일은 그렇게 보입니다.
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:517104510151:android:8b7ed3989db24a6f928ae2",
"android_client_info": {
"package_name": "com.techsajib.newapp"
}
},
참고: 때때로 JSON 파일은 여러 개의 패키지 이름을 가지므로 모두 변경합니다.
Google-services.json 파일을 열고 파일에서 다음 섹션을 찾습니다.
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:857242555489:android:46d8562d82407b11",
"android_client_info": {
"package_name": "com.example.duke_davis.project"
}
}
패키지가 패키지 이름과 동일한지 확인합니다.제 것이 달라서 바꾸었더니 작동했습니다.
저는 리액트 네이티브 출신이지만 이 질문에도 해당된다고 생각합니다.지정합니다.
내에서 android/app/build.gradle
를 applicationId
((내android
,defaultConfig
)
그리고 그 값이 동일한지 확인하십시오.
client[0]client_info.android_client_info.package_name
…의 google-services.json
.
또한 Google-services.json에서 패키지 이름을 변경해야 합니다.
Google-services.json 파일의 패키지 이름이 괜찮다면 gradle.properties 파일로 이동합니다.그런 다음 APPLICATION_ID="com"을 변경합니다.yourpackage.name "
파이어베이스 json 파일 "google-services.json"을 새 파일에 추가한 것 같습니다.새 파일을 만들어야 합니다. 파이어베이스에서 json 파일을 만드는 방법에 대한 링크를 확인하십시오. 그러면 패키지 이름과 일치해야 합니다.
두 번째는 패키지 이름을 변경하는 경우 드롭다운에서 프로젝트를 선택할 때 파일 아래를 마우스 오른쪽 단추로 클릭할 때 "경로에서 바꾸기" 옵션을 사용하는 것입니다.전체 프로젝트에서 패키지 이름을 검색하고 교체해야 합니다!
이것이 도움이 되길 바랍니다!
당신들 중 누구에게도 효과가 없다면, 제 문제는 'com'으로 시작하지 않는 패키지 이름입니다.바꿨습니다, 이제 작동합니다.
그것이 도움이 되기를
패키지 이름을 쉽게 변경할 수 있는 두 가지 단계:
"build.gradle" 파일 열기
그런 다음 "applicationId"에 새 패키지 이름을 추가한 다음 "지금 동기화" 프로젝트를 클릭합니다.
참고: "google-services.json" 파일이 프로젝트에 추가된 경우 "client_info" 내에서 이름 패키지 이름을 변경합니다.
"google-services.json" 내부의 패키지 이름
이상입니다.다른 곳에서 패키지 이름을 변경할 필요가 없습니다.
는 같은 했습니다.google-services.json
.
도구 > Firebase > Firebase에 연결 > Sync
프로젝트 디렉토리로 이동하여 제품 맛(알파, 베타, 스토어 또는 맛 이름이 무엇이든 간에)의 이름을 지정한 앱/src 경로에 폴더를 만듭니다.그런 다음 Google-services.json 파일을 각 폴더에 복사합니다.서브폴더한 각 제품 맛의 Google-services.json 파일에서 "package_name" 필드를 변경하는 것을 잊지 마십시오.
Google-services.json 파일로 이동하여 클라이언트 부분에서 패키지 이름을 확인하고, 패키지 이름이 다를 경우 앱 패키지 이름과 비교한 다음 앱 패키지 이름에 따라 클라이언트 패키지 이름을 변경하는 것이 제게 가장 좋은 일이었습니다.
구글-services.json file-> "package_name": "com.sys.application.filename"
앱 패키지 이름 -> 패키지 "com.example.application.tracker";
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.package.name"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
Gradle.app의 applicationId가 당신의 패키지 이름과 동일한지 확인하십시오. 제 문제는 이것이었고 저는 이 방법으로 해결했습니다.
저는 무료와 유료 두 가지 소스 세트를 만들어서 해결했습니다.두 폴더 모두 필요한 Java 코드와 리소스 파일을 포함하며, 이 파일은 특정 버전의 요구 사항에 맞게 편집됩니다.예를 들어, Java 클래스와 레이아웃 파일 모두에서 지불된 AdMob 코드를 제거하려고 합니다.
동일한 문제를 해결했습니다. 여기서 간단한 해결책이 있습니다. 파이어베이스 연결을 만들 때 다음 지침을 따르십시오.
파이어베이스에 응용프로그램 이름 추가
응용 프로그램 패키지 이름 추가(앱에서 사용 중인 동일한 패키지 이름 작성)
파이어베이스가 구글-services.json 파일을 만들 때 다운로드하여 앱 폴더에 붙여넣기만 하면 됩니다.
프로젝트 동기화 문제가 해결되었습니다 :)
감사해요.
애플리케이션의 패키지 이름을 변경할 때도 이 문제가 발생합니다.
안드로이드 스튜디오 프로젝트에서 "google-services.json" 파일을 찾습니다.파일을 열고 응용프로그램의 패키지 이름이 이 파일에 기록된 이름과 동일한지 확인합니다.
응용프로그램의 패키지 이름과 "google-services.json" 파일에 기록된 패키지 이름이 같아야 합니다.
당신은 이 문제를 해결하기 위해 그렇게 할 수 있습니다.
즉, Google-services.json 파일이 응용 프로그램에 속하지 않습니다(다른 응용 프로그램을 위해 Google-services.json을 다운로드했습니까?). ...그러므로 이 문제를 해결하려면 다음을 수행하십시오.
1: Firebase에 로그인하고 프로젝트를 엽니다. 2: Settings(설정) 아이콘을 클릭하고 Project settings(프로젝트 설정)를 선택합니다. 3:Your apps(앱) 카드의 목록에서 구성 파일이 필요한 앱의 패키지 이름을 선택합니다. 4: Google-services.json을 클릭합니다.다운로드가 완료되면 새 Google-services.json을 프로젝트 루트 폴더에 추가하여 기존의 루트 폴더를 바꿉니다.아니면 그냥 예전 것을 삭제하세요.첫 번째 프로젝트에 대해 Google-services.json을 다운로드한 다음 이 특정 Google-services.json이 현재 프로젝트에만 적합하다고 가정하거나 잊어버리는 것은 매우 일반적입니다. 왜냐하면 모든 프로젝트가 고유한 패키지 이름을 가지고 있기 때문에 다른 프로젝트에만 적합하지 않기 때문입니다.
언급URL : https://stackoverflow.com/questions/34990479/no-matching-client-found-for-package-name-google-analytics-multiple-productf
'programing' 카테고리의 다른 글
루비에서 문자열이 다른 문자열로 시작하는 경우 어떻게 찾을 수 있습니까? (0) | 2023.06.04 |
---|---|
Eclipse를 사용하여 두 파일을 비교하려면 어떻게 해야 합니까?이클립스에서 제공하는 옵션이 있습니까? (0) | 2023.06.04 |
Firebase에서 앱이 백그라운드에 있을 때 알림을 처리하는 방법 (0) | 2023.06.04 |
서버를 시작하는 동안 "Ruby 버전은 2.3.0이지만 Gem 파일이 2.2.5로 지정되었습니다."를 수정하는 방법 (0) | 2023.06.04 |
Android에서 프로그래밍 방식으로 화면 밀도를 얻습니까? (0) | 2023.06.04 |