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)

Fazer upgrade da chave de assinatura do app para novas instalações

Em determinados casos, você pode solicitar um upgrade da chave de assinatura do app. Essa versão da chave será usada para assinar novas instalações e atualizações de apps. A chave de assinatura do app legada ainda será usada na assinatura de atualizações para os usuários que instalaram o app antes do upgrade.

Cada app só pode ter a chave de assinatura atualizada uma vez durante o ciclo de vida. Se você tiver vários apps que usem a mesma chave de assinatura especificamente para realizar um mesmo processo, não será possível usar a versão de upgrade da chave neles.

Veja alguns motivos para solicitar um upgrade da chave de assinatura do app:

  • Você precisa de uma chave com criptografia mais forte.
  • A chave de assinatura do app foi comprometida.

Observação: a solicitação de uma atualização de chave de assinatura do app no Play Console não está relacionada à rotação de chaves introduzida no esquema de assinatura do APK v3 para Android P e superior. No momento, este tipo de rotação de chaves não é compatível com o Google Play.

Considerações importantes antes de solicitar um upgrade de chave

Antes de solicitar um upgrade de chave, é importante entender quais alterações serão necessárias após a conclusão desse processo.

  • Se você usar a mesma chave de assinatura em vários apps para compartilhar códigos/dados entre eles, será necessário atualizar esses apps para que reconheçam os certificados das chaves novas e legadas.
  • Caso seu app use APIs, antes de atualizá-lo, registre os certificados das APIs novas e legadas com os provedores de API. Isso deve ser feito antes de você publicar uma atualização para garantir que as APIs continuem funcionando. Os certificados estão disponíveis na página Assinatura de apps no Play Console.  
  • Se muitos usuários instalarem atualizações por meio de compartilhamento ponto a ponto, eles só poderão instalar atualizações assinadas com a mesma chave da versão do seu app que já foi instalada. Se eles não conseguirem atualizar o app porque têm uma versão assinada com uma chave diferente, poderão desinstalar e reinstalá-lo para receber a atualização.
Solicitar um upgrade de chave para novas instalações
  1. Faça login no Play Console.
  2. Selecione um app.
  3. No menu à esquerda, selecione Gerenciamento da versão > Assinatura de apps.
  4. No card "Fazer upgrade da chave de assinatura do app para novas instalações", selecione Solicitar upgrade da chave.
  5. Selecione uma opção.
    • Dependendo da opção selecionada, talvez você precise entrar em contato com o suporte para concluir sua solicitação.
  6. Peça ao Google para gerar uma nova chave de assinatura do app (recomendado) ou faça o upload de uma.
    • Depois de fazer upgrade da sua chave de assinatura do app, você pode continuar usando a chave legada como sua chave de upload ou gerar uma nova.

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.

Isso foi útil?
Como podemos melhorá-lo?