Utilize a assinatura de apps através do Google Play

Com a assinatura de apps através do Google Play, a Google gere e protege a chave de assinatura da app por si, utilizando-a para assinar os seus APKs para distribuição. É uma forma segura de armazenar a chave de assinatura de apps para sua proteção se alguma vez perder a sua chave ou a mesma ficar comprometida.

Importante: para utilizar Android App Bundles, o formato de publicação de apps recomendado, tem de se inscrever na assinatura de apps através do Google Play antes de carregar o seu app bundle na Play Console.

Para aderir, tem de ser um proprietário da conta ou um utilizador com a autorização Lançar para produção, excluir dispositivos e utilizar a assinatura de apps através do Google Play e aceitar os Termos de Utilização. Pode inscrever uma app de cada vez na assinatura de apps através do Google Play.

Como funciona

Quando utiliza a assinatura de apps através do Google Play, as suas chaves são armazenadas na mesma infraestrutura que a Google utiliza para armazenar as suas próprias chaves. As chaves são protegidas pelo Serviço de gestão de chaves da Google. Se pretender saber mais acerca da infraestrutura técnica da Google, leia os Documentos técnicos sobre segurança do Google Cloud.

As apps Android são assinadas com uma chave privada. Para garantir que as atualizações de apps são fiáveis, cada chave privada tem um certificado público associado que os dispositivos e os serviços utilizam para validar se a app é de uma fonte fidedigna. Os dispositivos apenas aceitam atualizações quando a respetiva assinatura corresponde à assinatura da app instalada. Ao permitir à Google gerir a sua chave de assinatura de apps, torna este processo mais seguro.

Nota: a utilização da assinatura de apps através do Google Play é opcional. Pode carregar na mesma um APK e gerir as suas próprias chaves em vez de utilizar um app bundle. No entanto, se perder o seu repositório de chaves ou se este ficar comprometido, não poderá atualizar a app sem publicar uma nova app com um novo nome de pacote.

Descrições de chaves, artefactos e ferramentas
Termo Descrição
Chave de assinatura de apps

A chave que o Google Play utiliza para assinar os APKs que são entregues ao dispositivo de um utilizador. Quando opta pela assinatura de apps através do Google Play, pode carregar uma chave de assinatura de apps existente ou optar pela geração de uma chave pela Google.

A chave de assinatura de apps nunca pode ser alterada ao longo da duração total da app. Deve manter a chave de assinatura de apps secreta, mas pode partilhar o certificado público da app com outras pessoas.

Chave de carregamento

A chave que utiliza para assinar o app bundle ou o APK antes de o carregar para o Google Play. Deve manter a chave de carregamento secreta, mas pode partilhar o certificado público da app com outras pessoas. Por motivos de segurança, é aconselhável que as chaves de assinatura de apps e de carregamento sejam diferentes.

Existem duas formas de gerar uma chave de carregamento:

  • Utilizar a chave de assinatura de apps: se a chave de assinatura de apps for gerada pela Google quando optar pela assinatura de apps, a chave que utilizar no primeiro lançamento é também a chave de carregamento.
  • Utilizar uma chave de carregamento separada: se fornecer a sua própria chave de assinatura de apps quando optar pela assinatura de apps, poderá gerar uma nova chave de carregamento para maior segurança. Se não gerar uma, utilize a sua chave de assinatura de apps como chave de carregamento para assinar os lançamentos.
Certificado (.der ou .pem)

Um certificado contém uma chave pública e informações de identificação adicionais sobre o proprietário da chave. O certificado de chave pública permite que qualquer pessoa valide quem assinou o app bundle ou o APK. Pode partilhá-lo com qualquer pessoa, uma vez que não inclui a chave privada.

Para registar as chaves junto dos fornecedores da API, pode transferir o certificado público para a chave de assinatura de apps e a chave de carregamento a partir da página Assinatura de apps na Play Console. É possível partilhar o certificado de chave pública com qualquer pessoa. Não inclui a chave privada.

Impressão digital do certificado

Uma representação curta e única de um certificado que é frequentemente solicitada pelos fornecedores da API, juntamente com o nome do pacote, para registar uma aplicação para utilizar o respetivo serviço.

As impressões digitais MD5, SHA-1 e SHA-256 dos certificados de carregamento e de assinatura de apps encontram-se na página Assinatura de apps da Play Console. Também é possível calcular outras impressões digitais ao transferir o certificado original (.der) na mesma página.

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

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

Quando fornecer a chave de assinatura de apps para utilização pela Google, selecione a opção para exportar e carregar a chave (e o respetivo certificado público, se necessário) e siga as instruções para transferir e utilizar a ferramenta. Se preferir, pode transferir, rever e utilizar o código aberto da ferramenta PEPK.

Processo de assinatura de apps

Pode carregar APKs assinados com a chave de assinatura de apps original antes ou após optar pela assinatura de apps através do Google Play.

Se estiver a começar a utilizar app bundles, pode testá-los em faixas de teste enquanto utiliza o APK existente na produção. Eis como funciona o processo:

  1. Assine o seu app bundle ou APK e carregue-o para a Play Console.
  2. Consoante o que carregar, saiba como o processo de assinatura é diferente:
    • App bundle: a Google gera APKs otimizados a partir do seu app bundle e assina-os com a chave de assinatura de apps.
    • APK assinado com chave de carregamento: a Google valida e retira a sua assinatura do APK e, em seguida, volta a assinar o APK com a chave de assinatura de apps.
    • APK assinado com chave de assinatura de apps: a Google valida a assinatura.
  3. A Google envia os APKs assinados aos utilizadores.

Opte pela assinatura de apps através do Google Play

Novas apps

Passo 1: crie uma chave de carregamento

  1. Siga as instruções para criar uma chave de carregamento.
  2. Assine o novo APK com a chave de carregamento.

Passo 2: prepare o lançamento

  1. Siga as instruções para preparar e implementar o lançamento.
  2. Depois de selecionar a faixa de lançamento, configure a assinatura de apps na secção "Permitir que a Google gira e proteja a sua chave de assinatura de apps".
  3. Selecione Continuar, que torna a chave gerada a chave de carregamento utilizada para assinar lançamentos futuros, ou Preferências da assinatura de apps, que incluem:
    • Utilizar a mesma chave que outra app na sua conta de programador (opção 2).
    • Exportar e carregar uma chave existente de um repositório de chaves Java (opção 3) ou não utilizar um repositório de chaves Java (opção 4). Escolha a opção de exportação e carregamento mais adequada para si. Depois de carregar a chave de assinatura de apps e o respetivo certificado público, pode criar uma chave de carregamento ou continuar a utilizar a chave de assinatura de apps como chave de carregamento.
    • Desativar a assinatura de apps através do Google Play (opção 4).
  4. Selecione Atualizar.

Nota: tem de aceitar os Termos de Utilização e optar pela assinatura de apps para continuar.

Passo 3: registe a chave de assinatura de apps junto dos fornecedores da API

Se a sua app utilizar APIs, normalmente, é necessário registar o certificado da chave que a Google utiliza para assinar a app para fins de autenticação através da impressão digital do certificado. Saiba onde encontrar o certificado:

  1. Abra a Play Console.
  2. No menu do lado esquerdo, selecione Versão > Configuração > Assinatura de apps.
  3. Desloque-se até à secção "Certificado da chave de assinatura de apps" e copie as impressões digitais (MD5, SHA-1 e SHA-256) do seu certificado de assinatura de apps.
    • Se o fornecedor da API exigir um tipo de impressão digital diferente, também pode transferir o certificado original em formato .der e convertê-lo através das ferramentas de transformação exigidas pelo fornecedor da API.
Apps existentes

Passo 1: inscreva-se na assinatura de apps através do Google Play

  1. Abra a Play Console.
  2. Selecione uma app.
  3. No menu do lado esquerdo, selecione Versão > Configuração > Assinatura de apps.
  4. Se ainda não o fez, reveja os Termos de Utilização e selecione Aceitar.

Passo 2: envie a sua chave original para a Google e crie uma chave de carregamento

  1. Localize a chave de assinatura de apps original.
  2. Abra a Play Console.
  3. Selecione uma app.
  4. No menu do lado esquerdo, selecione Versão > Configuração > Assinatura de apps.
  5. Selecione a opção de exportação e carregamento mais adequada ao seu processo de lançamento e carregue uma chave de assinatura de apps existente.

Passo 3: crie uma chave de carregamento (opcional e recomendado)

  1. Crie uma chave de carregamento e carregue o certificado para o Google Play.
    • Também pode continuar a utilizar a chave de assinatura de apps como chave de carregamento.
  2. Copie as impressões digitais (MD5, SHA-1 e SHA-256) do seu certificado de assinatura de apps.
    • Para fins de teste, poderá ser necessário registar o certificado da sua chave de carregamento junto dos fornecedores da API ao utilizar a impressão digital do certificado e a chave de assinatura de apps.

Passo 4: assine a sua próxima atualização da app com a chave de carregamento

Quando lançar atualizações da sua app, tem de as assinar com a chave de carregamento.

  • Se não gerou uma nova chave de carregamento: continue a utilizar a sua chave de assinatura de apps original para assinar lançamentos antes de os carregar para o Google Play. Se perder a chave de assinatura de apps, pode gerar uma nova chave de carregamento e registá-la na Google para continuar a atualizar a sua app.
  • Se gerou uma nova chave de carregamento: utilize a nova chave de carregamento para assinar lançamentos antes de os carregar para o Google Play. Depois de os carregar, a Google procura uma chave de carregamento no lançamento para validar a sua identidade. Se perder a chave de carregamento, pode contactar o apoio técnico para a repor.

Crie uma chave de carregamento e atualize os repositórios de chaves

Para maior segurança, é recomendado assinar a app com uma nova chave de carregamento em vez da sua chave de assinatura de apps.

Pode criar uma chave de carregamento quando opta pela assinatura de apps através do Google Play. Em alternativa, pode fazê-lo mais tarde ao aceder a Gestão de lançamentos > Assinatura de apps.

Eis como criar uma chave de carregamento:

  1. Siga as instruções no site para programadores Android. Armazene a chave num local seguro.
  2. Exporte o certificado relativo à chave de carregamento para o formato PEM. Substitua os seguintes argumentos sublinhados:
    • $ keytool -export -rfc -keystore upload-keystore.jks -alias upload -file upload_certificate.pem
  3. Quando lhe for pedido durante o processo de lançamento, carregue o certificado para o registar na Google.

Quando utiliza uma chave de carregamento:

  • A chave de carregamento é registada apenas na Google para autenticar a identidade do criador da app.
  • A sua assinatura é removida de qualquer APK carregado antes de este ser enviado para os utilizadores.
Restrições da chave de carregamento
  • Tem de ser uma chave RSA com 2048 bits ou mais.
Atualize os repositórios de chaves

Depois de criar uma chave de carregamento, seguem-se algumas localizações que poderá pretender verificar e atualizar:

  • Máquinas locais
  • Servidor no local bloqueado (LCAs variáveis)
  • Máquina na nuvem (ACLs variáveis)
  • Serviços dedicados de gestão de segredos
  • Repositórios (Git)

Atualize a sua chave de assinatura de apps para novas instalações

Em algumas circunstâncias, pode solicitar uma atualização da chave de assinatura de apps. A nova chave é utilizada para assinar novas instalações e atualizações de apps. A chave de assinatura de apps antiga continua a ser utilizada para assinar as atualizações dos utilizadores que instalaram a sua app antes da atualização da chave.

Cada app apenas pode ter a sua chave de assinatura de apps atualizada uma vez na respetiva duração total. Na improbabilidade de ter várias apps a utilizar a mesma chave de assinatura especificamente para execução no mesmo processo, não pode utilizar a atualização da chave para essas apps.

Seguem-se alguns motivos para solicitar uma atualização de chave de assinatura de apps:

  • Precisa de uma chave criptograficamente mais forte.
  • A sua chave de assinatura de apps foi comprometida.

Nota: a solicitação de uma atualização de chave de assinatura de apps na Play Console não está relacionada com a alteração da chave introduzida no esquema de assinatura do APK v3 para o Android P e superior. Este tipo de alteração de chave não é atualmente suportado pelo Google Play.

Considerações importantes antes de solicitar uma atualização de chave

Antes de solicitar uma atualização de chave, é importante compreender as alterações que poderá ter de efetuar depois de a atualização estar concluída.

  • Se utilizar a mesma chave de assinatura de apps para várias apps de modo a partilhar código/dados entre as mesmas, tem de atualizar as suas apps para que reconheçam os certificados da chave de assinatura de apps nova e antiga.
  • Se a sua app utilizar APIs, certifique-se de que regista os certificados da chave de assinatura de apps nova e antiga nos fornecedores de API antes de publicar uma atualização para garantir que as APIs continuam a funcionar. Os certificados estão disponíveis na página Assinatura de apps na Play Console.  
  • Se muitos dos seus utilizadores instalarem atualizações através da partilha ponto a ponto, apenas vão conseguir instalar as atualizações assinadas com a mesma chave da versão da sua app que já instalaram. Se não conseguirem atualizar a respetiva app por terem uma versão da sua app assinada com uma chave diferente, têm a opção de desinstalar e reinstalar a app para obter a atualização.
Solicite uma atualização de chave para novas instalações
  1. Inicie sessão na Play Console.
  2. Selecione uma app.
  3. No menu do lado esquerdo, selecione Versão > Configuração > Assinatura de apps.
  4. No cartão "Atualize a sua chave de assinatura de apps para novas instalações", selecione Solicitar atualização da chave.
  5. Selecione uma opção.
    • Consoante a opção que selecionar, pode ter de contactar o apoio técnico para concluir o pedido.
  6. Permita que o Google gere uma nova chave de assinatura de apps (recomendado) ou carregue uma.
    • Depois de atualizar a chave de assinatura de apps, se estava a utilizar a mesma chave para assinatura de apps e carregamento, pode continuar a utilizar a chave de assinatura de apps antiga como chave de carregamento ou gerar uma nova chave de carregamento.

Práticas recomendadas

  • Se também distribuir a sua app fora do Google Play ou planear fazê-lo mais tarde e pretender utilizar a mesma chave de assinatura, tem duas opções: 
    • Permita que a Google gere a chave (recomendado) e, em seguida, transfira um APK assinado e universal a partir do explorador de app bundles para distribuir fora do Google Play. Também pode transferir APKs assinados a partir da API para programadores do Google Play. 
    • Em alternativa, pode gerar a chave de assinatura de apps que pretende utilizar para cada loja de apps e, em seguida, transferir uma cópia da mesma para a Google quando optar pela assinatura de apps através do Google Play.
  • Para proteger a sua conta, ative a validação em dois passos para as contas com acesso à sua Play Console.
  • Depois de publicar um app bundle para uma faixa de teste ou de produção, pode visitar o Explorador de app bundles para transferir um arquivo ZIP com todos os APKs para um dispositivo específico. Estes APKs são assinados com a chave de assinatura de apps e pode instalá-los no arquivo ZIP num dispositivo através do comando adb install-multiple *.apk.
  • Para maior segurança, gere uma nova chave de carregamento diferente da sua chave de assinatura de apps.
  • Se pretender testar o APK assinado com a chave de carregamento, tem de registar a chave de carregamento com qualquer serviço ou API que utilize a assinatura da app para efeitos de autenticação (como a API do Google Maps ou o SDK do Facebook).
  • Se estiver a utilizar uma API do Google, é recomendável registar o certificado de carregamento na Google Cloud Console da sua app.

Perdeu ou comprometeu uma chave de carregamento?

Se perdeu a sua chave de carregamento privada ou esta tiver sido comprometida, pode criar uma nova e, em seguida, pedir ao proprietário da conta para contactar o apoio técnico para repor a chave. Quando contactar o apoio técnico, certifique-se de que o proprietário da conta anexa o ficheiro upload_certificate.pem.

Depois de a nossa equipa de apoio técnico registar a nova chave de carregamento, receberá um email e, em seguida, pode atualizar os repositórios de chaves e registar a sua chave junto dos fornecedores da API.

Importante: a reposição da chave de carregamento não tem impacto na chave de assinatura de apps que o Google Play utiliza para voltar a assinar os APKs antes de os fornecer aos utilizadores.

A informação foi útil?
Como podemos melhorá-la?

Precisa de mais ajuda?

Inicie sessão para obter opções de apoio técnico adicionais e resolver rapidamente o seu problema.