티스토리 뷰

반응형

Stack Overflow에 자주 검색, 등록되는 문제들과 제가 개발 중 찾아 본 문제들 중에서 나중에도 찾아 볼 것 같은 문제들을 정리하고 있습니다.

Stack Overflow에서 가장 먼저 확인하게 되는 가장 높은 점수를 받은 Solution과 현 시점에 도움이 될 수 있는 가장 최근에 업데이트(최소 점수 확보)된 Solution을 각각 정리하였습니다.

 

아래 word cloud를 통해 이번 포스팅의 주요 키워드를 미리 확인하세요.

No matching client found for package name (Google Analytics) - multiple productFlavors & buildTypes

패키지 이름과 일치하는 클라이언트를 찾을 수 없습니다(Google Analytics)

 문제 내용 

Context:

상황:

 

I'm trying to set up Google Analytics for my app. (having 4 custom buildTypes and more than a few productFlavors)

앱에 대한 Google Analytics를 설정하려고 합니다. (4개의 사용자 지정 빌드 있음)종류 및 몇 개 이상의 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.

applicationId가 com.my.app.package.name(google-services.json을 생성할 때 사용되는 패키지 이름)으로 설정된 Build Variant을 선택하면 잘 작동합니다. 하지만 내 다른 flavors는 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:

Build Variant 탭(applicationId(패키지 이름)이 다른)에서 다른 Build Variant을 선택할 때 발생하는 오류는 다음과 같습니다.

 

Error:Execution failed for task ':app:processAllcategoriesDebugfreeGoogleServices'.

No matching client found for package name 'com.my.app.package.name.debug'

오류: 작업에 대한 실행에 실패 ':앱:프로세스모든 범주DebugfreeGoogle Services'. 패키지 이름 'com.my.app.package.name.https'에 대해 일치하는 클라이언트를 찾을 수 없습니다.

 

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.

위의 오류 메시지에 있는 작업 이름에서 Debugfree는 내 사용자 지정 빌드입니다.Type 및 All categories는 제 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.

나는 오류를 이해하고 패키지 이름이 내가 json을 생성할 때 사용했던 것과 다르다는 것을 알고 있지만, 그것이 내가 해결책을 찾으려는 것이다.

 

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.

이제 google-services.json은 앱 폴더에 상주하기 때문에 특정 소스 세트 폴더에 삭제하여 제품 맛별로 구분할 수 없습니다.

 

Questions:

질문:

 

  1. My custom 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)
  2. Is there a way to have multiple product flavors configured in the same 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?
  3. I see the 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.
1. 나의 커스텀 builtyTypeby ild접미사 .debug를 applicationId(패키지 이름)로 디버깅할 경우 입력합니다. 내 릴리스 애플리케이션 Id(즉, 접미사 .debug 없이)가 있는 google-services.json과 작동할 수 있는 방법이 있습니까?

2. 별도의 파일과 작업을 사용하여 필요한 파일을 앱 폴더에 복사하지 않고 동일한 Google-services.json 파일에서 여러 product flavors을 구성할 수 있는 방법이 있습니까? 나는 이 게시물에 언급된 것처럼 task 을 사용하여 수행할 수 있다는 것을 알고 있습니다. gradle 구성에 따라 파일을 하나만 갖거나 올바른 파일을 선택할 수 있는 더 간단한 방법이 있나요?

3. google-services.json의 package_name 필드에는 package_name (com.my.app.package.name)필드가 있습니다. 모든 빌드 변형에 대해 여러 패키지 이름을 수동으로 추가할 수 있습니까? 그렇다면 어떻게 해야 할까요? 설명서에서 지침을 찾을 수 없습니다.

 

 

 

 높은 점수를 받은 Solution 

Check your package name on your google-services.json it should be same with your local package name of your app

Google-services.json에서 패키지 이름을 확인하십시오. 앱의 로컬 패키지 이름과 같아야 합니다.

 

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

이 경우 내 로컬 패키지 이름은 com.my.app.package.name이므로 Google-services.json에서 내 로컬 패키지 이름으로 패키지 이름을 변경했습니다.

 

 

 

 가장 최근 달린 Solution 

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.

만약 누군가가 기존 패키지 이름을 변경한다면 그것은 때때로 그렇게 문제를 일으키므로, 당신은 로컬 패키지 이름, build.gradle 파일 패키지 이름을 변경해야 하며, 당신의 프로젝트에 google-services.json 파일이 있다면 당신은 당신의 JSON 파일 패키지 이름도 변경해야 한다.

 

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

참고: JSON 파일에 여러 패키지 이름이 있는 경우가 있으므로 모두 변경하십시오.

 

 

 

출처 : https://stackoverflow.com/questions/34990479/no-matching-client-found-for-package-name-google-analytics-multiple-productf

반응형
댓글
공지사항
최근에 올라온 글