Usar a Assinatura de apps do Google Play

Com a Assinatura de apps do Google Play, o Google gerencia e protege a chave de assinatura do app e a utiliza para assinar seus APKs para distribuição. É uma maneira segura de armazenar a chave de assinatura do app que ajuda a proteger você caso sua chave seja perdida ou comprometida.

Importante: para usar o Android App Bundle, o formato recomendado para a publicação de apps, você precisa se inscrever na Assinatura de apps do Google Play antes de fazer upload do pacote de apps no Play Console.

Para participar, você precisa ser proprietário da conta ou usuário com a permissão global "Gerenciar versões de produção" e aceitar os Termos de Serviço. É possível inscrever um app de cada vez na Assinatura de apps do Google Play.

Como funciona

Quando você usa a Assinatura de apps do Google Play, suas chaves são armazenadas na mesma infraestrutura que o Google usa para as próprias chaves. As chaves são protegidas pelo serviço de gerenciamento de chaves do Google. Se você quiser saber mais sobre a infraestrutura técnica do Google, leia a documentação de segurança do Google Cloud.

Os apps Android são assinados com uma chave privada. Para garantir a fidedignidade das atualizações do app, cada chave privada está associada a um certificado público que pode ser usado por qualquer dispositivo ou serviço para verificar se o app é de uma fonte confiável. Os dispositivos aceitarão atualizações somente quando a assinatura corresponder à do app instalado. Ao permitir que o Google gerencie a chave de assinatura do app, o processo fica mais seguro.

Observação: o uso da Assinatura de apps do Google Play é opcional. Ainda é possível fazer upload de um APK e gerenciar suas próprias chaves em vez de usar um pacote de apps. No entanto, se você perder o repositório ou ele for comprometido, não será possível atualizar o app sem publicar um novo app com um novo nome de pacote.

Descrições de chaves, artefatos e ferramentas
Termo Descrição
Chave de assinatura do app

A chave usada pelo Google Play para assinar os APKs enviados ao dispositivo de um usuário. Ao ativar a Assinatura de apps do Google Play, você faz upload de uma chave de assinatura do app existente ou solicita que o Google gere uma para você.

A chave de assinatura do app nunca pode ser alterada durante o ciclo de vida do app. A chave de assinatura do app precisa ser mantida em segredo, mas é possível compartilhar o certificado público do app com outras pessoas.

Chave de upload

A chave que você usa para assinar o pacote de apps ou o APK antes do envio ao Google Play. A chave de upload precisa ser mantida em segredo, mas é possível compartilhar o certificado público do app com outras pessoas. Por motivos de segurança, é uma boa ideia ter assinatura de apps e chaves de upload diferentes.

Existem duas maneiras de gerar uma chave de upload:

  • Usar a chave de assinatura do app: se você solicitar ao Google que gere uma chave de assinatura do app ao ativar a assinatura de apps, a chave usada na primeira versão também será a chave de upload.
  • Usar uma chave de upload separada: se você fornecer sua própria chave de assinatura do app ao ativar a assinatura de apps, terá a opção de gerar uma nova chave de upload para aumentar a segurança. Se você não fizer isso, use a chave de assinatura do app como chave de upload para assinar as versões.
Certificado (.der ou .pem)

Um certificado contém uma chave pública e informações adicionais de identificação do proprietário dessa chave. O certificado de chave pública permite que qualquer pessoa verifique quem assinou o pacote de apps ou o APK. Além disso, você pode compartilhá-lo com todos, porque ele não inclui a chave privada.

Para registrar suas chaves nos provedores de API, faça o download do certificado público da chave de assinatura do app e da chave de upload na página Assinatura de apps do Play Console. O certificado de chave pública pode ser compartilhado com outras pessoas. Ele não inclui a chave privada.

Impressão digital do certificado

Uma representação curta e exclusiva de um certificado solicitada frequentemente pelos provedores de API com o nome do pacote a fim de registrar um app para usar o respectivo serviço.

As impressões digitais MD5, SHA-1 e SHA-256 dos certificados de upload e de assinatura de apps estão disponíveis na página Assinatura de apps do Play Console. Para acessar outras impressões digitais, faça o download do certificado original (.der) na mesma página.

Repositório Java (.jks ou .keystore) Um repositório de certificados de segurança e chaves privadas.
Ferramenta Play Encrypt Private Key (PEPK)

Uma ferramenta para exportar chaves privadas de um repositório Java e criptografá-las antes da transferência para o Google Play.

Ao fornecer a chave de assinatura do app que será usada pelo Google, selecione a opção de exportar e fazer upload da chave e seu certificado público, se necessário, e siga as instruções para fazer o download e usar a ferramenta. Se preferir, você pode fazer o download, revisar e usar o código-fonte aberto da ferramenta PEPK.

Processo de assinatura de apps

É possível fazer upload de APKs com a chave de assinatura original do app antes ou depois de ativar a Assinatura de apps do Google Play.

Se você estiver começando a usar o Android App Bundle, poderá testá-las em faixas de teste enquanto usa o APK existente na produção. Veja como funciona o processo:

  1. Assine seu APK ou pacote de apps e faça upload dele para o Play Console.
  2. De acordo com do que você fizer upload, veja as diferenças no processo de assinatura:
    • Pacote de apps: o Google gera APKs otimizados do seu pacote e os assina com a chave de assinatura do app.
    • APK assinado com a chave de upload: o Google verifica e retira sua assinatura do APK, depois a substitui pela chave de assinatura do app.
    • APK assinado com a chave de assinatura do app: o Google verifica a assinatura.
  3. O Google envia APKs assinados para os usuários.

Ativar a Assinatura de apps do Google Play

Novos apps

Etapa 1: criar uma chave de upload

  1. Seguindo as instruções, crie uma chave de upload.
  2. Assine seu novo APK com a chave de upload.

Etapa 2: preparar a versão

  1. Siga as instruções para preparar e implantar sua versão.
  2. Após selecionar uma faixa de lançamento, configure a assinatura de apps na seção "Deixar que o Google gerencie e proteja sua chave de assinatura do app".
  3. Selecione Continuar, o que transforma a chave gerada em uma chave de upload usada para assinar versões futuras ou Opções avançadas, que inclui:
    • Usar a mesma chave de outro app na sua conta de desenvolvedor (Opção 2).
    • Fazer upload de uma chave de assinatura do app existente (Opções 2, 3 e 4): escolha a opção de exportação e upload mais adequada para você. Após fazer upload da chave de assinatura do app e seu certificado público, será possível criar uma chave de upload ou continuar usando a chave de assinatura do app como chave de upload.

Observação: você precisa aceitar os Termos de Serviço e ativar a assinatura de apps para continuar.

Etapa 3: registrar a chave de assinatura do app com os provedores de API

Se o app usar uma API, normalmente será preciso registrar o certificado da chave usada pelo Google ao assinar o app para fins de autenticação usando a impressão digital do certificado. Confira onde encontrar o certificado:

  1. Faça login no Play Console.
  2. Selecione um app.
  3. No menu à esquerda, selecione Gerenciamento da versão > Assinatura de apps.
  4. Copie as impressões digitais (MD5, SHA-1 e SHA-256) do certificado de assinatura de apps.
    • Se o provedor da API exigir outro tipo de impressão digital, faça o download do certificado original no formato .der e use as ferramentas de transformação exigidas por esse provedor para convertê-lo.
Apps existentes

Etapa 1: inscrever-se na Assinatura de apps do Google Play

  1. Faça login no Play Console.
  2. Selecione um app.
  3. No menu à esquerda, selecione Gerenciamento da versão > Assinatura de apps.
  4. Se ainda não tiver feito isso, analise os Termos de Serviço e selecione Aceitar.

Etapa 2: enviar a chave original para o Google e criar uma chave de upload

  1. Localize a chave de assinatura do app original.
  2. Faça login no Play Console.
  3. Selecione um app.
  4. No menu à esquerda, selecione Gerenciamento da versão > Assinatura de apps.
  5. Selecione a opção de exportação e upload mais adequada ao seu processo de lançamento e faça upload de uma chave de assinatura do app existente.

Etapa 3: criar uma chave de upload (opcional e recomendado)

  1. Crie uma chave de upload e faça upload do certificado para o Google Play.
    • Também é possível continuar usando a chave de assinatura do app como chave de upload.
  2. Copie as impressões digitais (MD5, SHA-1 e SHA-256) do certificado de assinatura de apps.
    • Para fins de teste, talvez seja necessário registrar o certificado da chave de upload nos provedores de API usando a impressão digital e a chave de assinatura do app do certificado.

Etapa 4: assinar a próxima atualização do app com a chave de upload

Ao liberar atualizações para apps, é necessário assiná-las com a chave de upload.

  • Se você não tiver gerado uma nova chave de upload: continue usando a chave de assinatura do app original para assinar versões antes de enviá-las para o Google Play. Se você perder essa chave de assinatura do app, poderá gerar uma nova chave de upload e registrá-la no Google para continuar atualizando o app.
  • Se você tiver gerado uma nova chave de upload: use a nova chave de upload para assinar as versões antes de enviá-las para o Google Play. Após o envio, o Google verifica se há uma chave de upload na versão para confirmar sua identidade. SE você perder a chave de upload, entre em contato com o suporte para redefini-la.

Criar uma chave de upload e atualizar repositórios

Para reforçar a segurança, é recomendável assinar o app com uma nova chave de upload em vez da chave de assinatura do app.

Você pode criar uma chave de upload ao ativar a Assinatura de apps do Google Play. Outra opção é criar uma chave de upload posteriormente, acessando Gerenciamento de versão > Assinatura de apps.

Saiba como criar uma chave de upload:

  1. Siga as instruções no site Developers do Android. Armazene a chave em um local seguro.
  2. Exporte o certificado da chave de upload para o formato PEM. Substitua os seguintes argumentos sublinhados:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Quando solicitado durante o processo de lançamento, faça upload do certificado para registrá-lo no Google.

Ao usar uma chave de upload:

  • Sua chave de upload só está registrada no Google para autenticar a identidade do criador do app.
  • Sua assinatura é removida dos uploads de APKs antes que eles sejam enviados aos usuários.
Restrições da chave de upload
  • Precisa ser uma chave RSA com 2.048 bits ou mais.
  • Chaves DSA, EC e RSA com menos de 2.048 bits não são compatíveis.
Atualizar repositórios

Após criar uma chave de upload, verifique e atualize estes locais:

  • Máquinas locais
  • Servidor no local bloqueado (Access Control Lists variáveis)
  • máquina da nuvem (Access Control Lists variáveis)
  • serviços dedicados de gerenciamento de segredos
  • Repositórios (Git)

Práticas recomendadas

  • Se você também distribuir o app fora do Google Play ou tiver planos de fazer isso no futuro, poderá gerar a chave de assinatura do app que será usada em todas as app stores e fazer upload dela no Google ao ativar a Assinatura de apps do Google Play.
  • Para proteger sua conta, ative a verificação em duas etapas das contas com acesso ao Play Console.
  • Após publicar um pacote de apps em uma faixa de teste ou de produção, acesse o explorador desses pacotes para fazer o download de um arquivo ZIP com todos os APKs de um dispositivo específico. Esses APKs são assinados com a chave de assinatura do app e é possível instalar os APKs no arquivo ZIP em um dispositivo usando o utilitário de linha de comando bundletool.
  • Para reforçar a segurança, gere uma nova chave de upload diferente da chave de assinatura do app.
  • Se você quiser testar o APK assinado com a chave de upload, registre essa chave em qualquer serviço ou API que use a assinatura do seu app para autenticação, como a Google Maps API ou o SDK do Facebook.
  • Caso você use uma API do Google, faça o registro do certificado de upload no Console do Google Cloud do app.

Chave de upload perdida ou comprometida?

Se você tiver perdido a chave de upload privada ou se ela tiver sido comprometida, crie uma nova e peça para o proprietário da conta entrar em contato com o suporte para redefini-la. Ao entrar em contato com o suporte, verifique se o proprietário da conta anexou o arquivo upload_certificate.pem.

Depois que nossa equipe de suporte registrar a nova chave de upload, você receberá um e-mail e poderá atualizar seus repositórios e registrar sua chave nos provedores de API.

Importante: redefinição da chave de upload não afetará a chave de assinatura do app usada pelo Google Play para assinar novamente os APKs antes de enviá-los aos usuários.

Este artigo foi útil para você?
Como podemos melhorá-lo?