Para usar esse recurso, você precisa ser o proprietário da conta ou um usuário com a permissão Enviar para produção, excluir dispositivos e usar a Assinatura de apps do Google Play. Além disso, é necessário aceitar os Termos de Serviço da 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 protegida usada para as chaves do Google. As chaves são protegidas pelo serviço de gerenciamento de chaves do Google. Se você quiser saber mais sobre a infraestrutura do Google, leia o artigo sobre segurança do Google Cloud Security.
Os apps Android são assinados com uma chave privada. Para garantir que as atualizações do app sejam confiáveis, cada chave privada está associada a um certificado público que pode ser usado por dispositivos ou serviços para verificar se a atualização do app vem da mesma fonte. 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: para apps criados antes de agosto de 2021, ainda é possível fazer upload de um APK e gerenciar as próprias chaves em vez de usar a Assinatura de apps do Google Play e de publicar com um Android App Bundle. 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. No caso desses apps, o Google Play recomenda usar a Assinatura de apps e mudar para pacotes de app.
Descrições de chaves, artefatos e ferramentasTermo | 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 usar a Assinatura de apps do Google Play, é possível fazer upload de uma chave de assinatura do app existente ou pedir que o Google gere uma para você. 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 app antes de fazer upload dele no 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:
|
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 confirme quem assinou o pacote de app ou o APK e pode ser compartilhado livremente, porque 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 Google Play ( Testar e lançar > Configuração > Assinatura de apps) no 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 para registrar um app e usar o serviço deles. 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 Google Play (Testar e lançar > Configuração > Assinatura de apps) no Play Console. Para acessar outras impressões digitais, baixe o 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 usada para exportar e criptografar as chaves privadas de um repositório Java 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. |
Veja como funciona o processo:
- Assine o pacote de app e faça upload dele no Play Console.
- O Google gera APKs otimizados do seu pacote e os assina com a chave de assinatura do app.
- O Google usa o apksigner para adicionar dois selos ao manifesto do seu app (
com.android.stamp.source
ecom.android.stamp.type
) e assinar os APKs com a chave de assinatura do app. Com os selos adicionados pelo apksigner, é possível rastrear quem assinou os APKs. - O Google envia APKs assinados para os usuários.
Configurar e gerenciar a Assinatura de apps do Google Play
Se o app ainda não estiver usando esse recurso, siga as instruções abaixo.
Etapa 1: criar uma chave de upload
- Siga estas instruções para criar uma chave de upload.
- Assine o pacote de app com a chave de upload.
Etapa 2: preparar a versão
- Siga as instruções para preparar e lançar sua versão.
- Depois que você seleciona uma faixa de lançamento, a seção "Integridade do app" exibe o status da Assinatura de apps do Google Play para o app.
- Para continuar com uma chave de assinatura do app gerada pelo Google, faça upload do pacote de app. Você também pode selecionar Mudar a chave de assinatura do app para acessar as seguintes opções:
- Usar uma chave de assinatura do app gerada pelo Google: mais de 90% dos novos apps usam chaves de assinatura do app geradas pelo Google. O uso dessas chaves protege contra perda ou violação (não é possível fazer o download da chave). Se você escolher essa opção, vai poder fazer o download no Explorador de pacotes de apps dos APKs de distribuição assinados com a chave gerada pelo Google para outros canais de distribuição ou usar uma chave diferente para eles.
- Usar uma chave de assinatura do app diferente: a escolha da chave de assinatura do app permite usar a mesma chave de outro app na sua conta de desenvolvedor ou manter uma cópia local da chave de assinatura do app para maior flexibilidade. Por exemplo, talvez você já tenha uma chave decidida, porque o app está pré-instalado em alguns dispositivos. Ter uma cópia da sua chave fora dos servidores do Google aumenta os riscos caso a cópia local seja violada. Você tem as seguintes opções para usar uma chave diferente:
- Usar a mesma chave de assinatura de outro app desta conta de desenvolvedor.
- Exportar e fazer upload de uma chave de um keystore Java.
- Exportar e fazer upload de uma chave (sem usar o keystore Java).
- Desativar a Assinatura de apps do Google Play. Só escolha esta opção caso você pretenda fazer upgrade da chave de assinatura do app para se inscrever na Assinatura de apps do Google Play.
- Conclua as instruções restantes para preparar e lançar sua versão.
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 a chave de assinatura com ela para autenticação, usando a impressão digital do certificado. Confira onde encontrar o certificado:
- Abra o Play Console e acesse a página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps).- Dica: você também pode acessar essa página em Integridade do app (
Testar e lançar
> Integridade do app), que tem serviços de integridade e assinatura para ajudar você a garantir que a experiência dos usuários saia como planejado.
- Dica: você também pode acessar essa página em Integridade do app (
- Role até a seção "Certificado da chave de assinatura do app" e 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.
- Se o provedor da API exigir outro tipo de impressão digital, faça o download do certificado original no formato
Quando você usa uma chave do Google, geramos automaticamente uma Chave RSA com criptografia forte de 4.096 bits. Se você quiser fazer upload da sua própria chave de assinatura do app, ela precisa ser uma Chave RSA com 2.048 bits ou mais.
Etapa 1: configurar a Assinatura de apps do Google Play
- Abra o Play Console e acesse a página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps).- Dica: você também pode acessar essa página em Integridade do app (
Testar e lançar
> Integridade do app), que tem serviços de integridade e assinatura para ajudar você a garantir que a experiência dos usuários saia como planejado.
- Dica: você também pode acessar essa página em Integridade do app (
- Leia os Termos de Serviço da Assinatura de apps do Google Play e selecione Aceitar caso ainda não tenha feito isso.
Etapa 2: enviar uma cópia da sua chave original para o Google e criar uma de upload
- Localize a chave de assinatura original do app.
- Abra o Play Console e acesse a página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps). - 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 atual.
Etapa 3: criar uma chave de upload (opcional e recomendado)
- 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.
- 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 pacotes de app antes de fazer upload deles no Google Play. Se você perder essa chave, poderá criar 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 essa chave para assinar os pacotes de app antes de fazer upload deles no Google Play. O Google usa a chave de upload para verificar sua identidade. Se você perder a chave de upload, entre em contato com o suporte para fazer uma redefinição.
Faça isso se não conseguir compartilhar a chave atual. Veja o que você precisa saber antes de fazer upgrade da chave de assinatura do app para inscrição:
- Será necessária uma versão dupla.
- Vai ser preciso fazer upload de um pacote de app e de um APK assinado com a chave legada em todas as versões. O Google Play vai usar seus pacotes de app para gerar APKs assinados com a nova chave para dispositivos usando Android R* (nível 30 da API) ou versões mais recentes. Seus APKs legados vão ser usados para versões mais antigas do Android (até o nível 29 da API).
*Caso o app use o sharedUserId
, faça upgrade da chave para instalações e atualizações em dispositivos com Android T (nível 33 da API) ou versões mais recentes. Para configurar isso, defina uma versão mínima e correta do SDK na configuração do pacote.
Etapa 1: fazer upload da nova chave e gerar e fazer upload da prova de rotação
Para que a nova chave seja confiável em dispositivos Android, faça upload de uma nova chave de assinatura de um repositório. Depois gere e envie a prova de rotação:
- Abra o Play Console e acesse a página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps).- Dica: você também pode acessar essa página em Integridade do app (
Testar e lançar
> Integridade do app), que tem serviços de integridade e assinatura para ajudar você a garantir que a experiência dos usuários saia como planejado.
- Dica: você também pode acessar essa página em Integridade do app (
- Selecione a guia Assinatura de apps.
- Clique em Mostrar opções avançadas e selecione Use uma nova chave de assinatura do app (isso requer versões duplas em andamento).
- Use a mesma chave de assinatura que outro app da sua conta de desenvolvedor ou faça upload de uma nova chave do Android Studio, Java KeyStore ou outro repositório.
- Seguindo as instruções exibidas na tela, faça o download e execute a ferramenta PEPK.
- Quando o ZIP estiver pronto, clique em Fazer upload do ZIP gerado e ele será enviado ao Play Console.
- Ao lado de "5. Permita que a nova chave seja confiável em dispositivos Android ao fazer upload da prova de rotação", clique em Mostrar instruções.
- Baixe a ferramenta APKSigner e gere uma prova de rotação com o seguinte comando:
$ apksigner rotate --out /path/to/new/file --old-signer --ks old-signer-jks --set-rollback true --new-signer --ks new-signer-jks --set-rollback true
- Clique em Fazer upload do arquivo de prova de rotação gerado e realize esse processo na etapa 8.
- Clique em Salvar.
Criar uma chave de upload e atualizar keystores
Para reforçar a segurança, é recomendável assinar o app com uma nova chave de upload em vez da de assinatura.
Você pode criar uma chave de upload ao ativar a Assinatura de apps do Google Play ou depois. Basta acessar a página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps).Saiba como criar uma chave de upload:
- Siga as instruções no site para desenvolvedores Android. Armazene a chave em um local seguro.
- 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
-
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.
- Precisa ser uma chave RSA com 2.048 bits ou mais.
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)
Atualizar a chave de assinatura do app
Em determinados casos, você pode solicitar um upgrade da chave de assinatura do app.
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.
Importante: os upgrades de chave só são compatíveis com apps que usam pacotes de app.
Antes de começar, veja a seção Considerações importantes antes de solicitar um upgrade de chave abaixo. Abra as seções seguintes para saber mais sobre como fazer a solicitação.
Considerações importantes antes de solicitar um upgrade de chaveAntes de solicitar um upgrade de chave, é importante entender quais mudanças vão ser 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, vai ser necessário atualizar esses apps para que reconheçam os certificados das chaves novas e legadas. Em dispositivos com o Android S (nível 32 da API) ou versões anteriores, somente o certificado da chave de assinatura do app legada é reconhecido pela plataforma Android para fins de compartilhamento de dados/código.
- Caso seu app use APIs, registre os certificados das chaves de assinatura novas e legadas com os provedores de API. Faça isso antes de publicar as atualizações para que as APIs continuem funcionando. Os certificados estão disponíveis na página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps) no Play Console. - Os usuários só poderão instalar atualizações por compartilhamento ponto a ponto se elas forem assinadas com a mesma chave da versão do app que já tiverem instalada. Se eles não conseguirem fazer a atualização porque têm uma versão assinada com uma chave diferente, poderão desinstalar e reinstalar o app para isso.
Cada app pode ter uma chave de assinatura atualizada para todas as instalações no Android N (API de nível 24) e versões mais recentes uma vez por ano.
Se você solicitar o upgrade, a nova chave vai ser usada para assinar todas as instalações e atualizações de apps. Em dispositivos com o Android T (nível 33 da API) e versões mais recentes, a plataforma Android aplica o uso da chave atualizada. Em dispositivos com o Android S (nível 32 da API) ou versões anteriores, a plataforma Android não impõe o uso dessa chave atualizada e ainda reconhece a chave de assinatura legada como a chave de assinatura do app. Isso também inclui todos os recursos da plataforma Android (por exemplo, compartilhamento de permissões personalizadas) que dependem da chave de assinatura do app. Em dispositivos com Android N (nível 24 da API) a Android S (nível 32 da API), o Google Play Protect vai verificar se as atualizações do app são assinadas com a chave atualizada, a menos que tenha sido desativada pelo usuário. Isso fornece uma validação adicional, já que a plataforma Android não impõe o uso da chave atualizada em dispositivos com o Android S (nível 32 da API) ou versões anteriores.
- Abra o Play Console e acesse a página Assinatura de apps do Google Play (
Testar e lançar
> Configuração > Assinatura de apps).- Dica: você também pode acessar essa página em Integridade do app (
Testar e lançar
> Integridade do app), que tem serviços de integridade e assinatura para ajudar você a garantir que a experiência dos usuários saia como planejado.
- Dica: você também pode acessar essa página em Integridade do app (
- No card "Fazer upgrade da chave de assinatura do app", selecione Solicitar upgrade da chave.
- Selecione uma opção para fazer upgrade da chave de assinatura do app para todas as instalações no Android N e versões mais recentes.
- Peça ao Google para gerar uma nova chave de assinatura do app (recomendado) ou faça 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.
- Selecione um motivo para solicitar o upgrade da chave de assinatura do app.
- Se necessário, registre a nova chave de assinatura do app com provedores de API.
Dica: se você distribuir o app em vários canais de distribuição e quiser maximizar a compatibilidade com essa atualização para os usuários, faça upgrade da chave em cada canal. Para ser compatível com o upgrade de chave do Google Play, use a ferramenta ApkSigner que acompanha o Android SDK Build Tools (revisão 33.0.1 ou mais recentes):
$ apksigner sign --in ${INPUT_APK}
--out ${OUTPUT_APK}
--ks ${ORIGINAL_KEYSTORE}
--ks-key-alias ${ORIGINAL_KEY_ALIAS}
--next-signer --ks ${UPGRADED_KEYSTORE}
--ks-key-alias ${UPGRADED_KEY_ALIAS}
--lineage ${LINEAGE}
Saiba mais sobre como funcionam as atualizações de apps.
Práticas recomendadas
- Se você também distribuir o app fora do Google Play ou tiver planos de fazer isso no futuro e quiser usar a mesma chave de assinatura, terá estas duas opções:
- Deixe que o Google gere a chave (recomendado) e, em seguida, faça o download de um APK universal e assinado no Explorador de pacotes de apps para a distribuição fora do Google Play.
- Outra opção é gerar a chave de assinatura do app que vai ser usada em todas as app stores e transferir uma cópia dela para o Google ao configurar 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 app em uma faixa de lançamento, use o Pesquisador de pacotes de apps para acessar os APKs instaláveis gerados pelo Google do seu pacote de app. Você pode:
- Copiar e compartilhar um link de Compartilhamento interno de apps para testar com apenas um toque o que o Google Play instalaria pelo pacote de apps em diferentes dispositivos.
- Fazer o download de um APK universal assinado. Este APK único é assinado com a chave de assinatura do app mantida pelo Google e pode ser instalado em qualquer dispositivo compatível com o app.
- Baixar um arquivo ZIP com todos os APKs para um dispositivo específico. Esses APKs são assinados com a chave de assinatura do app mantida pelo Google. Você pode instalar os APKs no arquivo ZIP em um dispositivo usando o comando
adb install-multiple *.apk
.
- Para reforçar a segurança, gere uma nova chave de upload diferente da chave de assinatura do app.
- Caso você use uma API do Google, faça o registro da chave de upload e dos certificados de chave de assinatura do app no Console do Google Cloud.
- Se você estiver usando Links do app Android, atualize as chaves no arquivo JSON do protocolo Digital Asset Links correspondente no site.
Chave de upload perdida ou comprometida?
Se você tiver perdido a chave de upload particular ou se ela tiver sido comprometida, crie uma nova. Assim o proprietário da conta de desenvolvedor pode iniciar uma redefinição de chave no Play Console.
Depois que nossa equipe de suporte registrar a nova chave de upload, o proprietário da conta e os administradores globais vão receber uma mensagem na caixa de entrada e um e-mail com mais informações e você pode atualizar seus keystores e registrar sua chave nos provedores de API.
O proprietário da conta também pode cancelar a solicitação de redefinição no Play Console.
Importante: redefinir a chave de upload não vai afetar a chave de assinatura do app usada pelo Google Play para assinar novamente os APKs antes de serem enviados aos usuários.
Esquema de assinatura de APK v4
Os dispositivos Android 11 e versões mais recentes são compatíveis com o novo esquema de assinatura de APK v4. A Assinatura de apps do Google Play usa a assinatura v4 em apps qualificados para permitir o acesso a recursos de distribuição otimizados disponíveis em dispositivos mais recentes. Nenhuma ação é necessária da parte do desenvolvedor, e não é esperado nenhum impacto sobre os usuários com a assinatura v4.
Conteúdo relacionado
- Saiba mais sobre os serviços de assinatura e integridade no Play Console.
- Saiba mais sobre os serviços de integridade e assinatura no site para desenvolvedores Android.