[android] 패키지 이름 (Google Analytics)과 일치하는 클라이언트를 찾을 수 없습니다.-여러 개의 ProductFlavors 및 buildTypes
문맥:
앱에 Google 웹 로그 분석을 설정하려고합니다. (4 사용자 정의 buildTypes
및 몇 가지 이상 productFlavors
)
로 설정 Build Variant
한 것을 선택하면 제대로 작동합니다 (을 생성 할 때 사용 된 패키지 이름 ). 그러나 다른 풍미에는 다른 applicationId가 있습니다.applicationId
com.my.app.package.name
google-services.json
나는 공식적인 지침 을 따라 설정했다.
Build Variants Tab
(다른 applicationId
(패키지 이름) 을 가진 다른 빌드 변형을 선택할 때 발생하는 오류 는 다음과 같습니다.
오류 : ‘: app : processAllcategoriesDebugfreeGoogleServices’작업에 대한 실행이 실패했습니다.
패키지 이름 ‘com.my.app.package.name.debug’와 일치하는 클라이언트가 없습니다.
오류 메시지 설명 :
오류 메시지에서 작업 이름에서 위의 Debugfree
내 관습 buildType
과 Allcategories
내 중 하나입니다 productFlavors
.
나는 오류를 이해하고 패키지 이름이 json을 생성 할 때 사용한 것과 다르다는 것을 알고 있지만 그 방법을 알아 내려고 노력하고 있습니다.
문제:
이제는 폴더에 google-services.json
상주 app
하므로 플레이버 특정 소스 세트 폴더에 드롭하여 각 제품 플레이버마다 분리 할 수 없습니다.
질문 :
byildType
접미사.debug
를applicationId
(패키지 이름)으로 디버깅하는 사용자 정의 .google-services.json
내 릴리스가있는applicationId
(예 : 접미사가없는.debug
) 작업을 수행 할 수있는 방법이 있습니까?google-services.json
필요한 파일을app
폴더 로 복사하기 위해 별도의 파일과 작업을 사용하지 않고 동일한 파일 에 여러 제품 버전을 구성 할 수있는 방법이 있습니까? 이 게시물task
에서 언급 한대로 사용할 수 있습니다 . 하나의 파일을 가지고 있거나 gradle 구성에 따라 올바른 파일을 선택하는 간단한 방법이 있습니까?- 나는 참조
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”이 앱 gradle의 “applicationId”와 일치하지 않습니다.
앱 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"
}
},
해결 방법 : package_name
과 applicationId
반드시 같아야합니다.
답변
“google-services.json”파일의 패키지 이름이 앱의 패키지 이름과 동일한 지 확인하십시오.
답변
해결책을 찾았습니다.
firebase 프로젝트에서 두 개의 “앱”을 생성 한 다음 하나의 앱에서 json 파일을 다운로드 할 수 있습니다 (flavored 앱에서 다운로드). 두 앱 모두에 대한 데이터를 포함합니다. json 파일을 앱의 루트 디렉토리에 간단히 복사 할 수 있습니다.
출처 : https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-android-app-builds.html
답변
당신은 장소에 필요 google-services.json
로 app/
말 일세. 그리고 각 빌드 유형마다 app/src
폴더에 일치하는 디렉터가 있어야
합니다.
예를 들어 릴리스 및 디버그가있는 경우 :
app/google-services.json
app/src/debug/google-services.json
모든 google-services.json 파일 package_name
에서 빌드 유형에 따라 올바른 것을 지정해야 합니다.
예를 들어, 디버그 디렉토리 안에는 {com.myapp}.debug
답변
이 오류는 패키지 이름 이 프로젝트의 패키지 이름과 일치하지 않는 프로젝트에 Google Services Json 파일을 다운로드 한 경우 발생합니다. .
최근에 프로젝트의 패키지 이름을 바꿨습니까?
Gradle File이 아닌 모든 클래스를 업데이트합니다 . 따라서 Gradle에서 패키지 이름이 올바른지 확인하고 매니페스트도 확인하십시오.