Resposta rápida
O erro 10 do Google Sign-In, DEVELOPER_ERROR, significa que o app Android está configurado incorretamente. Se o login funciona localmente, mas falha em um teste fechado do Play, confira se o SHA-1 de assinatura do app instalado pelo Play e o nome de pacote final dele estão registrados no projeto correto do Firebase ou do Google Cloud, e se qualquer serverClientId ou webClientId é o ID do cliente do tipo aplicativo da Web, e não o do cliente Android. Depois, teste de novo com o build instalado pelo Google Play.
Escolha sua configuração
Já adicionou o SHA-1? Veja o que conferir em seguida.
O escopo aqui é uma única falha: o login nativo com o Google que quebra na cópia que o Google Play entrega. O guia separa essa falha de outros erros parecidos e depois trata de frameworks, outros provedores de login e do que os testadores devem relatar. Todas as páginas do Google citadas aqui foram verificadas em 16 de outubro de 2026, e os relatos da comunidade estão identificados como tal. As fontes estão listadas no final.
Nesta página
Corrija o Google Sign-In no build do Play
Faça o app que seus testadores instalaram corresponder ao nome de pacote e ao SHA-1 de assinatura registrados para ele. Siga estas etapas na ordem; os caminhos do Firebase e do Google Cloud vêm em seguida.
Confirme qual cópia está falhando
Confira se o testador instalou o app pelo seu teste fechado no Google Play e anote a versão que ele tem. Depois, anote o ID do aplicativo final desse build. O guia de build do Android diz que o ID do aplicativo é definido pela propriedade applicationId, que pode ser diferente do namespace do código-fonte ou ganhar um sufixo em uma variação de produto (build flavor). Se o testador não consegue nem instalar o app, o problema é outro: veja por que um app não está disponível para os testadores.
Abra a assinatura de apps do Play
No Play Console, abra o app e vá para Protected with Play. O Google moveu a assinatura de apps para lá em maio de 2026, e a própria ajuda dele descreve a etapa seguinte de duas formas (tabela abaixo). Os dois caminhos levam à mesma página.
| Caminho como o Google escreve | Onde o Google usa | O que abrir lá |
|---|---|---|
| Protected with Play > Play Store distribution > Go to Play app signing | Onde o Google usaCentral de Ajuda do Play Console, Usar a assinatura de apps do Google Play, seção de registro de APIs | O que abrir láApp signing key certificate e, depois, o valor do SHA-1 |
| Protected with Play > Play Store protection > Manage Play app signing | Onde o Google usaAs notas da atualização de maio de 2026 do Google Play e outra seção da mesma página de ajuda | O que abrir láA mesma página; os rótulos do menu podem variar entre contas |
Copie o SHA-1 da chave de assinatura de apps
Abra a seção App signing key certificate (certificado da chave de assinatura de apps), e não a do certificado da chave de upload, e copie o SHA-1 dela. Se o Play listar mais de uma chave de assinatura para o seu app, registre cada impressão digital aplicável (veja vários certificados de assinatura). Mantenha as impressões digitais de debug e locais que você já tem e adicione as do Play ao lado delas. Não faça a rotação da chave de assinatura para corrigir o login.
Registre-o onde o seu app faz login
Use o caminho do Firebase ou o caminho do Google Cloud, o que o seu app usar, e use o mesmo projeto que emitiu os IDs de cliente que estão dentro do app.
Teste de novo o build instalado pelo Play
Se você só mudou um registro no Firebase ou no Google Cloud, tente de novo com a cópia já instalada pelo Play antes de gerar qualquer build; desenvolvedores relataram que uma correção feita apenas no registro funcionou sem um novo upload. Se você mudou a configuração empacotada, um ID de cliente, o código ou uma dependência, envie um novo build para a mesma faixa fechada e teste esse build. O Google não publica um prazo fixo para uma nova impressão digital começar a valer, então teste de novo em vez de esperar um número definido de horas.
Adicione o certificado do Play no Firebase
Selecione o app Android correspondente antes de adicionar a impressão digital de assinatura do Play. As etapas seguem a ajuda de impressões digitais do Firebase e o guia de login com o Google dele.
- No console do Firebase, abra o projeto que o seu app usa e, depois, Project settings > General.
- Em Your apps, selecione o app Android cujo nome de pacote corresponde ao build que está falhando.
- Clique em Add fingerprint, cole o SHA-1 da assinatura de apps do Play e salve. Adicione-o ao lado das impressões digitais existentes, em vez de substituí-las.
- Em Authentication > Sign-in method, confirme que o Google está ativado.
- Se o Firebase pedir para você baixar um
google-services.jsonatualizado, substitua o arquivo no seu projeto. O Firebase diz que o arquivo “contém as informações do cliente OAuth necessárias para o login com o Google”, então um arquivo alterado significa um novo build. Confira se o projeto e o pacote dele correspondem ao app que está falhando.
Adicione um SHA-256 apenas quando um serviço específico do Firebase pedir. A autenticação por telefone, por exemplo, usa o SHA-256 no caminho do Play Integrity; o Google Sign-In em si depende do SHA-1.
Configure o Google Cloud sem o Firebase
Dois clientes OAuth fazem dois trabalhos diferentes. O cliente Android registra o seu app; o ID do cliente Web é o que a sua solicitação de token usa.
| Tipo de cliente | O que ele guarda | Onde você usa |
|---|---|---|
| Android | O que ele guardaO nome do pacote e o SHA-1 do certificado de assinatura | Onde você usaRegistra a identidade do app nativo. Você não cola este ID de cliente no serverClientId. |
| Aplicativo da Web | O que ele guardaO ID do cliente Web | Onde você usaO serverClientId ou webClientId da sua solicitação de token, e o público (audience) que o seu back-end aceita. O codelab Fazer login com o Google descreve esse cliente como o que atua “como cliente de back-end do serviço de login do Google”. |
- Selecione o projeto que emitiu os seus IDs de cliente e abra Google Auth platform > Clients (ajuda do Google Cloud).
- Procure um cliente Android existente com este nome de pacote e este SHA-1 antes de criar outro.
- Se ele não existir, escolha Create Client, defina Application type como Android, informe um nome, o nome do pacote e o SHA-1 da assinatura de apps do Play e clique em Create. O formulário Android tem um campo de SHA-1; um SHA-256 não vai ali.
- Registre cada par de pacote e certificado de que você precisa, por exemplo debug, release local e Play.
- Deixe o cliente Web no lugar para a solicitação de token e nunca coloque uma chave secreta do cliente dentro do app.
Comprove a correção
Um único login bem-sucedido não prova que a versão está corrigida. Esta lista é o teste de aceitação que nós recomendamos, não uma regra do Google; a última linha importa porque o login de um desenvolvedor passou uma vez e ainda falhou no login seguinte, um problema de sessão que uma verificação única não pegaria.
| Verificação | Evidência de aprovação | Se falhar |
|---|---|---|
| App e versão corretos | Evidência de aprovaçãoO testador confirma a instalação pelo Play e o build pretendidos | Se falharResolva primeiro a versão ou a entrega pela faixa |
| Primeiro login | Evidência de aprovaçãoEscolher uma conta leva de volta a um app com login feito | Se falharCapture a exceção exata e use a tabela de erros abaixo |
| Recurso protegido | Evidência de aprovaçãoO testador consegue usar um recurso que exige login | Se falharInspecione o tratamento do token no app e no back-end |
| Sair e entrar de novo | Evidência de aprovaçãoUm segundo login funciona sem reinstalar | Se falharInvestigue o tratamento da sessão e do logout do provedor |
| Dispositivo afetado antes | Evidência de aprovaçãoO mesmo testador e o mesmo dispositivo agora conseguem | Se falharCompare o certificado, o sistema, a conta e o build real |
| Continuidade do teste | Evidência de aprovaçãoO testador continua participando e você registrou a correção | Se falharCorrija a participação separadamente do login |
Por que o login funciona no debug, mas falha no teste fechado?
O app instalado pelo Google Play pode ter um assinante diferente do APK que você instala localmente. O guia de autenticação do cliente do Google observa que “o Android Studio assina automaticamente o seu app com um certificado de debug”. Uma versão de release que você mesmo gera usa a chave que estiver configurada para essa variante. Com a assinatura de apps do Google Play, a sua chave de upload assina o pacote que você envia, e o Google assina com a chave de assinatura de apps os APKs que os seus testadores recebem.
Essas chaves têm funções diferentes, mas nem sempre têm valores diferentes: você pode fornecer a sua própria chave de assinatura, e algumas configurações usam uma chave para duas funções. Compare as impressões digitais reais, e não os nomes das chaves.
| Cópia instalada | Certificado a conferir | Primeira ação |
|---|---|---|
| Instalação pelo Play no teste interno, fechado, aberto ou em produção, com a assinatura de apps do Play | Certificado a conferirO certificado (ou os certificados) de assinatura de apps do Play, em Protected with Play | Primeira açãoRegistre cada SHA-1 do Play aplicável |
| Execução de debug pelo Android Studio | Certificado a conferirO certificado de debug daquela máquina | Primeira açãoRegistre esse SHA-1 para o ID do aplicativo correspondente |
| APK de release gerado na sua máquina | Certificado a conferirO certificado configurado para essa variante de release | Primeira açãoNão presuma que “release” significa o assinante do Google |
| Link do compartilhamento interno de apps | Certificado a conferirO certificado de teste próprio do compartilhamento interno de apps | Primeira açãoRegistre-o separadamente se os testadores usarem esse caminho |
Compartilhamento interno de apps não é teste interno
A ajuda do compartilhamento interno de apps do Google diz que “todo APK é assinado novamente com este certificado de teste”. Ele fica em Test and release > Internal testing > Internal app sharing > Uploaders and testers > Internal test certificate. As faixas de teste interno e de teste fechado usam a sua chave de assinatura de apps do Play.
Leia as impressões digitais você mesmo
Para builds gerados na sua máquina, o relatório de assinatura do Gradle mostra o SHA-1 e o SHA-256 de cada variante, e o keytool lê o keystore de debug diretamente (digite a senha do keystore quando ela for pedida):
./gradlew signingReport
keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore
Um relatório de assinatura local não diz o que assinou a cópia do Play. Para conferir o próprio build que está falhando, instale-o pelo teste fechado em um dispositivo, extraia-o com o adb e mostre os certificados dele com o apksigner, que o Google documenta como uma forma de exibir “informações sobre os certificados de assinatura do APK”. Troque o nome do pacote e use o caminho que o primeiro comando mostrar:
adb shell pm path com.example.app
adb pull /data/app/.../base.apk failing-play.apk
apksigner verify --print-certs failing-play.apk
Adicionei o SHA-1 e ainda falha
Compare o certificado do APK que está falhando, o ID do aplicativo final dele e os IDs de cliente antes de mudar mais configurações. Desça por esta escada; cada linha descarta uma camada.
| Verificação | O que comparar | Decisão |
|---|---|---|
| 1. Cópia instalada e faixa | O que compararA instalação real do testador pelo Play, comparada com a versão que você queria testar | DecisãoUm relatório de assinatura local não prova qual é o assinante do Play |
| 2. Certificado | O que compararA saída de apksigner verify --print-certs no APK do Play que está falhando, comparada com o que você registrou |
DecisãoRegistre todos os assinantes necessários; mantenha as entradas antigas que ainda atendem usuários com o app instalado |
| 3. ID do aplicativo final | O que compararO applicationId da variante gerada, incluindo os sufixos de flavor, comparado com o pacote registrado | DecisãoO namespace do código-fonte não conta |
| 4. Projeto e cliente Web | O que compararO projeto e o ID do cliente Web que o seu build de release e o seu back-end realmente usam | DecisãoUm erro de digitação aqui quebra o login mesmo com as impressões digitais corretas |
| 5. Provedor e clientes existem | O que compararO Google ativado como provedor, além dos clientes Android e Web por trás dele | DecisãoSe outro projeto reivindicar o par, veja a nota sobre conflito abaixo |
| 6. Família do erro | O que compararCódigo nativo 10, um cancelamento do Credential Manager, um token recusado pelo back-end ou uma incompatibilidade de redirecionamento no navegador | DecisãoCada um é um caminho separado; veja a tabela de erros |
| 7. Problema do framework na versão de release | O que compararRedução de recursos (resource shrinking), a versão da biblioteca resolvida e a inicialização | DecisãoUse changelogs e correções confirmadas, não upgrades ou downgrades aleatórios |
A linha 4 não é teórica. Em um caso com Expo relatado em setembro de 2026, adicionar impressões digitais não mudou nada; a correção foi um erro de digitação no ID de cliente que o back-end aceitava.
Vários certificados de assinatura ou chaves atualizadas
Um único app pode precisar de mais de uma identidade de assinatura registrada. A ajuda atual da assinatura de apps do Google Play descreve a assinatura híbrida com três chaves de assinatura de apps e pede que você registre as impressões digitais de cada uma, e um app que fez upgrade da chave de assinatura ainda pode ter instalações assinadas por uma chave mais antiga. Registre as identidades que as suas instalações realmente têm e não apague entradas antigas que ainda funcionam. A rotação de chaves está fora do escopo deste guia e não é uma correção de login.
Outro projeto já é dono deste pacote e deste SHA-1
A ajuda sobre conflitos do Firebase diz que um par de nome de pacote e SHA-1 “precisa ser único em todos os projetos do Firebase e do Google Cloud”. Se o console recusar a sua impressão digital porque outro projeto já a tem, descubra qual projeto é dono desse cliente OAuth antes de apagar qualquer coisa. O suporte do Google pode ajudar a localizar o conflito; não remova clientes ou projetos ativos tentando adivinhar a solução.
O erro 10 é o mesmo que 12500, 12501 ou canceled?
Não. Leia o erro exato e a biblioteca que o gerou antes de tratar todo login que falha como um único problema. A referência de códigos de status comuns do Google define DEVELOPER_ERROR = 10 como “O aplicativo está configurado incorretamente.” Os outros códigos abaixo vêm do SDK histórico play-services-auth 21.6.0 do Google.
| O que você vê | O que significa | Próximo passo |
|---|---|---|
ApiException: 10 ou DEVELOPER_ERROR |
O que significaErro de configuração do app | Próximo passoCompare o assinante, o pacote, o projeto e os IDs de cliente |
12500 |
O que significaSIGN_IN_FAILED: “Ocorreu uma falha de login não recuperável” |
Próximo passoLeia os logs ao redor; não trate como erro 10 |
12501 |
O que significaSIGN_IN_CANCELLED: “Ação de login cancelada” |
Próximo passoDescubra se o usuário cancelou e qual API gerou o código |
canceled do Credential Manager ou do Flutter |
O que significaUm cancelamento real ou um problema de configuração | Próximo passoInspecione os detalhes da exceção e a configuração; deixe o usuário fazer uma nova tentativa depois do diagnóstico |
NoCredentialException |
O que significaNenhuma credencial foi retornada; não é um diagnóstico de certificado | Próximo passoConfira a disponibilidade da conta e a configuração da solicitação, além do registro |
| O token do Google funciona, o back-end recusa | O que significaUma etapa posterior à obtenção da credencial do Google | Próximo passoConfira o público (audience) e os IDs de cliente que o seu back-end aceita |
redirect_uri_mismatch |
O que significaUm redirecionamento OAuth no navegador não corresponde a um URI autorizado | Próximo passoCorrija a configuração de callback desse fluxo |
| “Item não encontrado” no link do Play | O que significaUm problema de instalação ou de qualificação, não de login | Próximo passoSiga as verificações de app não disponível |
Google Sign-In legado e Credential Manager
As notas da versão do Google Play Services registram a descontinuação das APIs do Google Sign-In no play-services-base em 16 de abril de 2024, e o Google anunciou a migração para o Credential Manager em 11 de setembro de 2024. As APIs foram então removidas do play-services-auth 22.0.0 em 26 de agosto de 2026 e do play-services-base 18.11.0 em 17 de setembro de 2026, com a nota “Removed the APIs related to Google Sign-in” (as APIs relacionadas ao Google Sign-In foram removidas). Essa é uma mudança no SDK; ela não estabelece uma data de desligamento para apps já instalados. Código novo e upgrades devem seguir o guia de migração do Google.
As duas APIs falham de formas diferentes. O Credential Manager não tem erro 10; o guia de solução de problemas dele avisa que “um volume alto de "cancelamentos" pode, na verdade, indicar uma configuração incorreta”. Então um cancelamento pode ser uma falha de configuração ou um cancelamento real, e NoCredentialException é mais um sinal diferente.
Verificações para Flutter, React Native, Expo e Unity
As verificações de identidade nativa acima valem para todos os frameworks, mas a configuração, a inicialização e a configuração de build mudam. Use o caminho do seu framework e a versão da biblioteca que o seu app realmente resolve.
| Framework | Verificações específicas | Não presuma |
|---|---|---|
| Flutter | Verificações específicasA implementação Android, google_sign_in_android, passou para o Credential Manager na versão 7.0.0. Passe o ID do cliente Web como serverClientId. O changelog da versão 7.2.16 “impede que o recurso default_web_client_id seja removido pelos redutores de recursos”, o que importa para falhas que só acontecem na versão de release. |
Não presumaQue todo resultado canceled é um problema de SHA, ou que um downgrade é uma correção universal. |
| React Native | Verificações específicasIdentifique qual API da biblioteca você usa, passe o ID do cliente Web como webClientId e confira o applicationId real e o APK que está falhando. O guia de solução de problemas lista “O login não funciona quando o app é baixado da Play Store” e oferece um comando de verificação da configuração (abaixo). |
Não presumaQue uma issue fechada no rastreador prova uma correção. |
| Expo | Verificações específicasO login nativo com o Google precisa de um build de desenvolvimento ou personalizado; o guia do Expo diz que “essas bibliotecas não podem ser usadas no Expo Go porque exigem código nativo personalizado”. Mantenha o certificado de assinatura do EAS ou local separado do certificado de assinatura de apps do Play. | Não presumaQue o Expo Go reproduz o fluxo de release, ou que gerar um novo build corrige um ID de cliente de back-end errado. |
| Unity | Verificações específicasDecida se você usa o Firebase Authentication ou o Unity Authentication, obtenha o token de ID do Google pela integração de plataforma compatível e depois troque-o com esse back-end (guia do Firebase para Unity). O antigo exemplo de login do Google para Unity foi arquivado em 19 de abril de 2026. | Não presumaQue o login do Play Games e o login com a Conta do Google são a mesma integração. |
Para React Native, os mantenedores da biblioteca oferecem uma verificação de configuração que você pode rodar na raiz do projeto:
npx @react-native-google-signin/config-doctor
O que muda para Supabase, Facebook, Apple ou Auth0?
O provedor e o fluxo de login decidem qual certificado, ID de cliente ou callback precisa corresponder. Um SHA-1 do Google é a resposta para o login nativo com o Google; para outros provedores, ele pode ser o hash errado, o formato errado ou irrelevante.
| Provedor ou fluxo | O que precisa corresponder | Onde configurar |
|---|---|---|
| Google nativo com Firebase | O que precisa corresponderO pacote instalado e o SHA-1, o cliente Web e o Google ativado como provedor | Onde configurarImpressões digitais nas configurações do projeto do Firebase, além do Authentication |
| Google nativo com Supabase | O que precisa corresponderA identidade nativa do Android e o ID do cliente Web; o guia do Supabase diz que “o ID do cliente Web é o usado no seu app Android”. | Onde configurarOs clientes Android e Web do Google e, depois, as configurações do provedor Google no Supabase |
| OAuth do Supabase no navegador | O que precisa corresponderO cliente Web, o callback do Supabase e o link de retorno do seu app | Onde configurarOs URIs de redirecionamento autorizados no Google e as configurações de redirecionamento do Supabase; uma correção de SHA não se aplica |
| Facebook no Android | O que precisa corresponderUm hash de chave em Base64 feito a partir dos bytes do SHA-1 do certificado de assinatura, e não o hexadecimal separado por dois-pontos | Onde configurarConfigurações do app no Facebook, hashes de chave do Android (caminho conforme documentado no guia do Expo para Facebook) |
| Login da Apple pela Web no Android | O que precisa corresponderO Services ID, o domínio e a URL de retorno | Onde configurarConfiguração web do Sign in with Apple da Apple; não é o mecanismo DEVELOPER_ERROR do Google |
| Apple pelo Firebase no Android | O que precisa corresponderA configuração da Apple, além do SHA-1 do app | Onde configurarGuia do Firebase para Apple: “Especifique a impressão digital SHA-1 do seu app, caso ainda não tenha feito isso.” |
| Auth0 no Android | O que precisa corresponderAs URLs de callback permitidas e o esquema do app; a identidade de app link, onde for usada | Onde configurarConfigurações do aplicativo no Auth0; o readme do SDK para Android dele usa hashes de chave SHA-256 na configuração de app links |
| Autenticação por telefone do Firebase | O que precisa corresponderSHA-256 para o Play Integrity, SHA-1 para o fallback do reCAPTCHA | Onde configurarAutenticação por telefone do Firebase: um fluxo separado do login com o Google |
Não leve o login para uma WebView
Passar o login com o Google por uma WebView incorporada não é uma solução alternativa. As políticas do OAuth 2.0 do Google dizem que os desenvolvedores “não podem direcionar uma solicitação de autorização do Google OAuth 2.0 para um user-agent incorporado”.
O que os testadores devem enviar ao desenvolvedor?
Um relatório útil identifica o build do Play que está falhando e o ponto exato em que o login para. Um testador não consegue consertar um registro OAuth tentando de novo, então o trabalho dele é reunir evidências, e não insistir. Copie este modelo e envie aos seus testadores:
App e link de teste do Play:
Versão ou build do app instalado:
Instalado por: teste fechado do Play / outro caminho
Dispositivo e versão do Android:
Data, hora e fuso horário:
Texto exato do erro ou uma captura de tela com dados ocultos:
Onde parou: antes do seletor de contas / depois de escolher uma conta / depois de voltar ao app
Outro método de login conseguiu abrir o app?
Resultado e versão do novo teste:
Peça aos testadores que continuem participando do teste enquanto você corrige o problema. Nunca peça senhas, tokens OAuth, chaves privadas ou acesso ao Play Console. Depois da sua mudança, peça ao mesmo testador que abra um recurso que exige login, saia e entre de novo, e anote a versão e o resultado.
O erro 10 afeta o meu teste fechado ou o acesso de produção?
Um erro de configuração de login é separado da participação no teste. O erro 10 não é um código de recusa por política do Play, e nenhuma regra do Google que encontramos diz que ele reinicia o período de participação dos seus testadores. A página de requisitos de teste do Google incentiva você a melhorar o app durante o teste fechado, então mantenha os testadores participando e envie a correção para a mesma faixa fechada. Essa é uma leitura das regras publicadas, e não uma promessa que cubra todos os casos.
Um login quebrado ainda importa. A política de funcionalidade do Google Play diz que “não permitimos apps que travam, forçam o fechamento, congelam ou funcionam de forma anormal”, e uma barreira de login impede que os testadores cheguem aos recursos que deveriam testar. Corrija isso antes de solicitar o acesso de produção e forneça aos revisores dados de login que funcionem. Se uma análise já voltou, veja a recusa por funcionalidade quebrada (Broken Functionality).
Para contexto: contas pessoais de desenvolvedor criadas após 13 de novembro de 2023 precisam de no mínimo 12 testadores participando continuamente há 14 dias antes de solicitar o acesso de produção para aquele app. Depois que você solicita, o Google diz: “Esse processo geralmente leva até sete dias, mas pode demorar um pouco mais.” Se faltam testadores na contagem, confira como eles foram convidados antes de mexer no login.
Precisa de testadores reais para os 14 dias?
Os testadores não conseguem corrigir um registro OAuth, então faça o login funcionar primeiro. Quando ele funcionar, a PrimeTestLab fornece 12+ testadores reais que instalam o seu build do Play em celulares Android reais e continuam participando durante os 14 dias completos, a partir de $19.99 (mais 5% de taxa de serviço). Se o Google não conceder o acesso de produção depois do teste completo, você escolhe entre um novo teste grátis ou o reembolso total. Veja como funciona o teste fechado com 12 testadores.
Perguntas frequentes
Por que o Google Sign-In funciona no debug, mas não no teste fechado?
O seu APK de debug e o app baixado do Google Play podem ser assinados com certificados diferentes, então registrar a impressão digital de debug não configura o build do Play. Comece pelo SHA-1 da assinatura de apps do Play e depois confira o nome de pacote final do build de release e os IDs de cliente que o app realmente usa.
Onde encontro agora o SHA-1 da assinatura de apps do Play?
Abra a página Protected with Play do seu app no Play Console. A ajuda do Google descreve Play Store distribution e depois Go to Play app signing; outros textos atuais do Google chamam essas opções de Play Store protection e Manage Play app signing. Abra a seção App signing key certificate e copie o SHA-1, conferindo também as chaves adicionais mostradas para o seu app.
Preciso de SHA-1 ou SHA-256 para o Google Sign-In?
O cliente OAuth Android do Google identifica o seu app pelo nome do pacote e pela impressão digital SHA-1 do certificado de assinatura, e o SHA-256 não substitui esse campo. Outros serviços têm necessidades próprias: a autenticação por telefone do Firebase usa o SHA-256 para o Play Integrity e o SHA-1 para o fallback do reCAPTCHA. Configure cada serviço para o fluxo que o seu app usa.
Já adicionei o SHA-1. O que devo conferir em seguida?
Confirme que ele pertence ao app instalado pelo Play, e não à sua chave de upload ou de debug. Depois, compare o ID do aplicativo final, o projeto do Firebase ou do Cloud e o ID do cliente Web. Se o seu app tem vários certificados de assinatura, confira esses também. Um erro de digitação no ID de cliente aceito pelo back-end pode quebrar o login mesmo quando as impressões digitais estão certas.
Preciso enviar outro AAB depois de adicionar uma impressão digital?
Não necessariamente. Desenvolvedores relatam que uma correção feita apenas no registro, no Firebase ou no Google Cloud, funcionou com o app já instalado. Uma mudança no ID de cliente, no arquivo de configuração, no código ou em uma dependência precisa chegar aos testadores em um novo build. Confira o que você mudou e depois verifique a instalação real pelo Play, em vez de gerar builds repetidamente sem um diagnóstico.
Quanto tempo uma nova impressão digital leva para funcionar?
O Google não publica um tempo de propagação específico para impressões digitais, e as discussões de desenvolvedores que analisamos não mediram nenhum. Salve a configuração correta e tente de novo. Se ainda falhar, verifique o certificado instalado e as configurações do cliente em vez de esperar um número fixo de horas, porque esperar não conserta uma incompatibilidade.
Por que aparece canceled se eu não cancelei?
Algumas integrações do Credential Manager e de frameworks informam um problema de configuração ou de autorização como cancelamento, embora um cancelamento também possa ser real. Anote o tipo e a mensagem da exceção, consulte o guia de solução de problemas do seu framework e não confunda a API atual com o status legado 12501 SIGN_IN_CANCELLED antes de mudar configurações.
O ID do cliente Android é o que eu coloco no serverClientId?
Não. Nas integrações nativas documentadas do Google, o serverClientId ou webClientId é o cliente OAuth do tipo aplicativo da Web usado na solicitação de token. O cliente Android, por sua vez, registra o seu pacote e o certificado de assinatura. Configure os dois e confirme que o seu back-end aceita o público (audience) de token pretendido, em vez de trocar IDs de cliente ao acaso.
O erro 10 reinicia o meu teste fechado de 14 dias?
Nenhuma regra do Google que encontramos diz que esse erro reinicia o período de participação, e o Google incentiva melhorias durante o teste fechado, então mantenha os testadores inscritos e corrija a faixa existente. Isso não é sinal de que o app está pronto: uma barreira de login pode impedir um teste útil e deixar um problema de funcionalidade que você precisa corrigir antes de solicitar.
O que devo pedir para um testador me enviar?
Peça a versão instalada, o link de teste do Play, o dispositivo e a versão do Android, o erro exato e a etapa em que o login para. Uma captura de tela com dados ocultos ou uma gravação curta ajuda. Depois da sua correção, peça ao mesmo testador que use um recurso que exige login, saia e entre de novo, sem compartilhar nenhuma credencial.
Resumo final
Resumo
O erro 10 do Google Sign-In significa que o app está configurado incorretamente, e quando só a cópia do Play falha, o certificado de assinatura é a primeira coisa a conferir. Copie o SHA-1 da chave de assinatura de apps em Protected with Play, registre-o com o nome de pacote final do build no mesmo projeto do Firebase ou do Google Cloud que o seu app usa, mantenha o ID do cliente Web no serverClientId e teste de novo o build que os seus testadores instalaram, incluindo um segundo login. Se ainda falhar, compare o certificado do APK instalado, o ID do aplicativo e os IDs de cliente antes de mudar qualquer outra coisa.
Fontes verificadas em 16 de outubro de 2026
Os rótulos de menu do Play Console e do Firebase são os fatos que mudam mais rápido nesta página. Se um caminho acima não corresponder mais ao seu console, procure a assinatura de apps do Play em Protected with Play e as impressões digitais no seu app Android, nas configurações do projeto do Firebase.