ti-enxame.com

Nenhum cliente correspondente encontrado para o nome do pacote (Google Analytics) - vários produtosFlavors & buildTypes

Contexto:

Estou tentando configurar o Google Analytics para meu aplicativo. (tendo 4 custom buildTypes e mais que alguns productFlavors)

Ele funciona bem quando eu seleciono o Build Variant que tem o applicationId definido como com.my.app.package.name (o nome do pacote usado ao gerar o google-services.json). Mas meus outros sabores têm diferentes applicationIds.

Eu segui o devguide oficial para configurá-lo.

Erro que recebo quando qualquer outra variante de compilação é selecionada em Build Variants Tab (que tem um diferente applicationId (nome do pacote) é a seguinte:

Erro: falha na execução da tarefa ': App: processAllcategoriesDebugfreeGoogleServices'.

Nenhum cliente correspondente encontrado para o nome do pacote 'com.my.app.package.name.debug'

Explicação da mensagem de erro: 

No nome da tarefa na mensagem de erro acima Debugfree está o meu buildType e Allcategories é um dos meus productFlavors.

Eu entendo o erro e sei que o nome do pacote é diferente do que eu usei ao gerar o json, mas é isso que eu estou tentando descobrir.

Problema:

Agora, o google-services.json reside na pasta app e, portanto, não estou conseguindo separá-los para cada sabor do produto, soltando-os na pasta do conjunto de fontes específicas do sabor.

Questões:

  1. Meu personalizado byildType para depurar sufixos .debug para o applicationId (nome do pacote). Existe uma maneira de fazer isso funcionar com o google-services.json que tem minha versão applicationId (ou seja, sem o sufixo .debug)
  2. Existe uma maneira de ter vários tipos de produtos configurados no mesmo arquivo google-services.json sem usar arquivos e tarefas separados para copiar o arquivo necessário para a pasta app. Eu sei que isso pode ser feito usando task como mencionado em this post . Existe uma maneira mais simples de ter apenas um arquivo ou escolher o arquivo correto com base na configuração do gradle?
  3. Eu vejo o campo package_name em google-services.json tem o nome do pacote com.my.app.package.name. Posso adicionar vários nomes de pacotes manualmente para trabalhar com todas as variantes de compilação? Se sim, como fazer isso? Não foi possível encontrar instruções nas documentações.
234

Encontrei isto:

O arquivo google-services.json geralmente é colocado no diretório / Do aplicativo, mas a partir da versão 2.0.0-alpha3 do suporte ao plug-in foi adicionado Para os tipos de construção , o que tornaria a seguinte estrutura de diretório válida:

app/src/
    main/google-services.json
    dogfood/google-services.json
    mytype1/google-services.json
    ...

Fonte

Fonte 2

169

Verifique o nome do seu pacote no seu google-services.json ele deve ser o mesmo com o nome do seu pacote local do seu aplicativo

Exemplo

"client_info": {
    "mobilesdk_app_id": "1:6596814400689:Android:65d6f25f5006145",
    "Android_client_info": {
      "package_name": "com.my.app.package.name"
    }

Neste caso, o nome do meu pacote local é com.my.app.package.name, por isso também alterei o nome do meu pacote em google-services.json com o nome do meu pacote local

207
Muhammed Fasil

verifique se o nome do seu pacote no arquivo "google-services.json" é o mesmo com o nome do pacote do seu aplicativo.

57
cahit beyaz

Eu encontrei a solução:

Temos que criar dois "aplicativos" no projeto firebase e, em seguida, podemos baixar o arquivo json de qualquer aplicativo (eu baixei do aplicativo com sabor). Ele conterá os dados para os dois aplicativos. Podemos simplesmente copiar o arquivo json para o diretório raiz do aplicativo.

Fonte: https://firebase.googleblog.com/2016/08/organizing-your-firebase-enabled-Android-app-builds.html

44
Usman

Você precisa colocar google-services.json em app/ dir. E para cada tipo de construção, deve haver um diretor concordante na pasta app/src

Por exemplo, se você tiver release e debug:

app/google-services.json
app/src/debug/google-services.json

Em todos os arquivos google-services.json, você deve especificar package_name correto de acordo com o tipo de construção. 

Por exemplo, dentro do debug dir, deve ser como {com.myapp}.debug

25
Bogdan Ustyak

Sempre que você criar ou atualizar package name Verifique se o nome do seu pacote é exatamente o mesmo [Maiúsculas e minúsculas é importante]

Faça o passo abaixo.

1). Verificar applicationId no arquivo gradle no nível de aplicativo,

2). Verifique package_name no seu arquivo google-services.json,

3). Verifique package no seu arquivo AndroidManifest 

e para confirmação completa, faça o nome do diretório do pacote de trabalho i.e. ("com.example.app") também é o mesmo.

24
Ravi Vaniya

Nenhum cliente correspondente encontrado para o nome do pacote 'com.tf' Tenho certeza de que o "package_name" no google-services.json não está combinando com o seu "applicationId" no gradle do aplicativo. 

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"
        }
      },

Solução : Apenas certifique-se de que package_name e applicationId devam ser iguais.

23
Kailash Karki

Abra seu arquivo do Google-services.json e procure por esta seção no arquivo:

"client": [
{
  "client_info": {
    "mobilesdk_app_id": "1:857242555489:Android:46d8562d82407b11",
    "Android_client_info": {
      "package_name": "com.example.duke_davis.project"
    }
  }

verifique se o pacote é o mesmo que o nome do seu pacote. O meu era diferente, então eu mudei e funcionou.

13
DAVIS BENNY 15MIS0426

verifique se client_id e package_name no google-services.json tem um valor correto de acordo com o nome do seu pacote. 

Você deve adicionar o arquivo mencionado no diretório de sabores com o nome do pacote correspondente no campo client_id e package_name

12
SHi ON

Certifique-se de renomear ApplicationId no arquivo gradle após renomear seu pacote

11
Arsalan Shah

Eu estou vindo de reagir nativo, mas acho que isso se aplica a esta questão também. Especificar.

Dentro do arquivo Android/app/build.gradle procure por applicationId (dentro de Android, defaultConfig)

e garantir que esse valor seja o mesmo 

client[0]client_info.Android_client_info.package_name 

como o valor dentro de google-services.json.

10
ThomasReggi

Se o nome do seu pacote no arquivo do Google-services.json estiver correto, Vá para o arquivo gradle.properties. Em seguida, altere seu APPLICATION_ID = "com.yourpackage.name"

7
Dulal Kisku

Você também precisa alterar o nome do pacote em google-services.json

6
S H Mehdi

Primeiro, adicione um sufixo ao pacote de aplicativos no Gradle:

yourFlavor {
   applicationIdSuffix "yourFlavor"
}

Isso fará com que seu pacote seja nomeado 

com.domain.yourapp.yourFlavor

Em seguida, acesse o Firebase em seu projeto atual e adicione outro aplicativo Android a ele com o nome desse pacote.

Em seguida, substitua o arquivo google-services.json existente pelo novo que você gerar com o novo aplicativo. 

Então você vai acabar com algo que tem várias seções "client_info". Então você deve acabar com algo parecido com isto: 

"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"
    }
  }
5
Droid Chris
Android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.package.name"
        minSdkVersion 19
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "Android.support.test.runner.AndroidJUnitRunner"
    }

certifique-se de que o applicationId do Gradle.app seja o mesmo nome do seu pacote. meu problema era isso e resolvi assim

4
Bayar Şahintekin

se nada disso funcionasse para um de vocês, meu problema era com um nome de pacote que não começou com um 'com'. mudou isso, agora funciona.

espero que ajude

4
eiran

Acho que você adicionou o arquivo firebase json "google-services" .json ao novo arquivo. Certifique-se de criar um novo arquivo verifique o link sobre como criar o arquivo json do firebase e ele deve corresponder ao nome do seu pacote

A segunda coisa é que, se você estiver alterando o nome do pacote, use a opção "substituir no caminho" ao clicar com o botão direito do mouse em arquivos ao selecionar o projeto no menu suspenso. Você tem que procurar pelo nome do pacote em todo o projeto e substituí-lo!

Espero que isto ajude !

4
Ashok Kumar K R

vá ao diretório do seu projeto e crie pastas no caminho app/src que nomeou seus sabores de produto (como Alpha, Beta, Store ou o que quer que seja o nome do seu sabor). copie o arquivo google-services.json para cada pasta. não se esqueça de alterar o campo "package_name" no arquivo google-services.json do seu sabor de cada produto que você subpasta.

3
Osman Yalın

Eu resolvi o mesmo problema Aqui é uma solução simples: Quando você cria firebase connection segue estas diretrizes:

  • Adicione o nome do seu aplicativo no Firebase

  • Adicione o nome do seu aplicativo (escreva o mesmo nome de pakage, você está usando no aplicativo)

  • quando firebase faz google-services.json arquivo apenas download it e cole na pasta do seu aplicativo

  • Sincronize seu projeto O problema está solucionado :)

    Obrigado 

2
Chaudhary Nouman

Vá para o arquivo google-services.json e na parte cliente, verifique o nome do pacote e compare com o nome do pacote do aplicativo, se eles forem diferentes, então altere o nome do pacote do cliente de acordo com o nome do pacote de aplicativo.

google-services.json file-> "package_name": "com.example.application.tracker"

Nome do pacote de aplicativos-> package "com.example.application.tracker";

2
Shah Rukh

Eu resolvi isso fazendo dois conjuntos de fontes, um livre e outro pago. Ambas as pastas conterão o código Java necessário e os arquivos de recursos, que serão editados para os requisitos do sabor específico. Por exemplo, você deseja remover o Código da AdMob no Pago tanto de Classes Java quanto de Arquivos de layout.

2
Abhiroj Panwar

Eu resolvi o mesmo problema re-sincronizando o arquivo google-services.json.

Ferramentas> Firebase> Conectar ao Firebase> Sincronizar

2
Nabin Bhandari

Isso significa que seu arquivo google-services.json não pertence ao seu aplicativo (você fez o download do google-services.json para outro aplicativo?) ... para resolver isso, faça o seguinte:

1: faça login no Firebase e abra seu projeto. 2: Clique no ícone Configurações e selecione Configurações do projeto. 3: No cartão Seus aplicativos, selecione o nome do pacote do aplicativo precisa de um arquivo de configuração na lista. 4: Clique em google-services.json. Após a conclusão do download, adicione o novo google-services.json à sua pasta raiz do projeto, substituindo o existente .. ou simplesmente exclua o antigo. É muito normal fazer o download do arquivo. google-services.json para o seu primeiro projeto e, em seguida, assumir ou esquecer que este google-services.json específico é personalizado apenas para o seu projeto atual, porque nenhum outro, porque todos os projetos têm um nome de pacote exclusivo.

1
RileyManda

Também recebo este problema quando altero o nome do pacote do meu aplicativo.

No seu projeto de estúdio do Android, localize o arquivo "google-services.json". Abra-o. E verifique se o nome do pacote do seu aplicativo é o mesmo que está escrito neste arquivo.

O nome do pacote do seu aplicativo e nome do pacote escrito no arquivo "google-services.json" deve ser o mesmo.

1
mehmoodnisar125

Verifique se há applicationIdSuffix no arquivo build.gradle do seu aplicativo. Veja se ele está concatenando qualquer texto para sua applicationId. Em caso afirmativo, remova-o.

0
Arsalan Shah

1.Verify Nome do pacote e ID da aplicação deve ser o mesmo

2.Verify google-services.json nome do pacote que está disponível na pasta do aplicativo

0
John Ruban Singh

Esse erro ocorre quando você faz o download de um arquivo Json do Google Services no seu projeto cujo nome do pacote não corresponde ao nome do pacote do seu projeto.

Recentemente renomeou o nome do pacote do projeto? Ele atualiza todas as classes mas não o arquivo Gradle . Portanto, verifique se o nome do seu pacote está correto no seu Gradle, e também talvez Manifest também.

0
devDeejay