Como assinar seu aplicativo móvel híbrido para ser hospedado no Google Play. Como assinar seu aplicativo móvel híbrido para ser hospedado no Google Play Os aplicativos Android devem ser assinados

Então você trabalhou por dias (e talvez noites), e aqui está seu primeiro híbrido aplicativo móvel pronto. É bastante estável, a maioria dos bugs críticos foram corrigidos. Existem apenas alguns menores, mas lembrando que perfeccionismo é mau, você toma a decisão obstinada de publicar o aplicativo.

Um pré-requisito para isso é a presença de um arquivo APK assinado. Você aprenderá como assinar um arquivo apk neste artigo.

Pequena digressão

Quando meu projeto de estimação ficou muito próximo do lançamento, comecei a procurar informações sobre como publicar um aplicativo de forma rápida e fácil. Muitas das instruções que encontrei pareciam simples. Escolhi as instruções dos autores do framework Ionis, no qual o aplicativo foi desenvolvido. Nem tudo deu certo na primeira vez, há vários recursos. O processo de assinatura é descrito neste artigo, pontos importantes estão destacados.

Dados iniciais

Presumo que você tenha tudo o que precisa para configurar para desenvolver aplicativos móveis híbridos com o Apache Cordova. Deve ser instalado:
  • Apache Cordova
  • kit de desenvolvimento do Java
  • Android SDK Tools
Lcf é usado como o nome do projeto e do aplicativo. Substitua pelo nome do seu projeto quando apropriado.

Ir

Primeiro você precisa criar uma versão de lançamento do seu aplicativo. Mas antes disso, vamos garantir que todos os plug-ins desnecessários sejam removidos. Por exemplo, não precisamos de um plugin que imprima informações de depuração no console. Vamos removê-lo:

$ cordova plugin rm cordova-plugin-console
Para gerar uma versão de versão para Android, use o comando construir com bandeira --lançamento:

$ cordova build --release android
Este comando irá criar não assinado Arquivo APK no diretório:

Plataformas / android / build / outputs / apk
Por exemplo, plataformas / android / build / outputs / apk / android-release-unsigned.apk... Então, precisamos assinar este arquivo e executar o utilitário zipalign para otimizar e preparar o arquivo para Google Play.

É necessário um certificado para assinar o arquivo. Vamos criá-lo usando o utilitário ferramenta-chaveque está incluído no JDK:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 -validity 10000
Importante

O valor do parâmetro -alias deve ser lembrado ou melhor escrito. No exemplo acima, é igual a lcf (com base nas primeiras letras do nome do aplicativo Loyal Client Free). Não vou dar detalhes aqui, se for interessante, escreva nos comentários, contarei mais.

O alias é usado sempre que você assina * formulários. Para tornar mais fácil de lembrar, use o nome do arquivo keystore como um alias, por exemplo:


-keystore hello-world.keystore -alias hello-world -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias todo
* Você precisa assinar o aplicativo sempre que uma atualização for lançada

Utilitário ferramenta-chave faz uma série de perguntas. Serão 8 no total, para se ter uma ideia das perguntas e respostas aproximadas com antecedência, todas estão dadas abaixo, embaixo do spoiler.

Perguntas-chave e respostas aproximadas para elas

1. Digite a senha do keystore:
Aqui você deve inserir a senha do arquivo (pelo menos 6 caracteres). A senha digitada deve ser anotada em local seguro, sendo necessária sempre que você assinar o aplicativo.

2. Digite novamente a nova senha:
Digite a senha novamente.

3. Qual é o seu nome e sobrenome?
: Ivan Petrov
Seu primeiro e último nome. O valor entre colchetes é o padrão.

4. Qual é o nome da sua unidade organizacional?
: ISTO
O nome da divisão da sua empresa. Pode ser deixado em branco, eu indico IT.

5. Qual é o nome da sua organização?
: 2developers
O nome da sua organização. Indique se houver.

6. Qual é o nome da sua cidade ou localidade?
: Moscou
Nome da Cidade

7. Qual é o nome do seu estado ou província?
: MO
Nome da região

8. Qual é o código de duas letras do país para esta unidade?
: RU
Código do país. Eu indico RU.

: y

Confirme se tudo está correto ou pressione Enter para entrar novamente.


No final, aparecerá uma mensagem sobre a geração bem-sucedida da chave. Você será solicitado a definir uma senha para a chave privada (se quiser deixar a mesma do certificado, pressione Enter):

Gerando par de chaves RSA de 2.048 bits e certificado autoassinado (SHA256withRSA) com validade de 10.000 dias para: CN \u003d Ivan Petrov, OU \u003d IT, O \u003d 2developers, L \u003d Moscow, ST \u003d MO, C \u003d RU Digite a senha chave para (RETORNAR se for igual à senha do keystore):
Um arquivo será criado no diretório atual lcf.keystore.

Importante

Salve o arquivo criado em um local seguro. Se você estiver usando um repositório privado, o arquivo pode ser confirmado junto com os códigos-fonte do aplicativo. Em geral, é melhor manter os certificados separados. Se você perder o certificado, não poderá emitir atualizações do aplicativo.

Faltam apenas duas etapas e você terá um arquivo APK pronto para distribuição. Vamos direto para a assinatura.

Para assinar seu arquivo apk, use o utilitário jarsignerque também está incluído no JDK.

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
O nome do certificado é especificado após o parâmetro - keystore, alias - após o nome do arquivo.

Finalmente, para otimizar o arquivo apk, usaremos o utilitário zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
O último parâmetro é o nome do arquivo que você enviará para o Google Play.

Importante.

Utilitário zipalign faz parte das ferramentas do Android SDK e pode ser encontrado aqui:

/ caminho / para / Android / sdk / build-tools / VERSION / zipalign

Conclusão

Agora você tem um arquivo apk pronto para distribuição que pode ser carregado no Google Play. Preencha a descrição, determine a classificação do seu aplicativo e fique à vontade para clicar em “Publicar”.

Já que eu mesmo pesquisei a questão no Google " como assinar um arquivo APK? ", Eu sei que não é tão fácil encontrar uma instrução realmente funcional e compreensível em tudo. Por isso decidi escrever um material sobre como assinar corretamente o seu programa ou jogo no Android.

Como você sabe agora, sem uma assinatura digital, sua criação não pode ser colocada no Market "e, e isso já é sério. Notei que muitos jovens desenvolvedores no Android, por assim dizer, iniciantes esquecem completamente de assinar seu aplicativo e tentam fazer algo com ele e pronto. se perguntando por que eles não são capazes de realizar esta ou aquela ação com seu arquivo APK.

Portanto, não vamos puxar o saco e começar imediatamente com como você pode assinar seu arquivo apk e o que realmente usar para alcançar o resultado desejado.

Este método é o mais correto de todos os listados, por isso iremos descrevê-lo neste material. Faremos nossas próprias chaves com nossos dados e certificados e os usaremos para assinar o aplicativo que você criar.

Para trabalhar, precisamos de: OpenSSL e SignApk.

Primeiro, vamos fazer um certificado e uma chave de assinatura. Instale o OpenSSL. Durante a instalação, o instalador se oferecerá como opção de copiar os componentes para a pasta Windows, selecione a pasta Bin, que estará no local onde você irá instalar todos os OpenSSL.

Agora abra um prompt de comando como administrador do sistema (isso é muito importante!). Em seguida, vá para a linha de comando na pasta bin, que está localizada na pasta onde você instalou o OpenSSL (por exemplo, C: \\ OpenSSL \\ Bin \\ ou ) Se você não sabe, mover para outra pasta é feito com o comando cD... Ou seja, para ir até a pasta desejada, deve-se executar um comando do seguinte plano:

cd C: \\ OpenSSL \\ Bin \\

Quando estiver na pasta Bin, você pode prosseguir diretamente para a criação de um certificado e chave.

Passo 1 (Gere uma chave com comprimento de 1024 bits)

Execute o comando:

openssl genrsa -out key.pem 1024

Passo 2 (Com base na chave, criamos uma solicitação de certificado)

Execute o comando:

openssl req -new -key key.pem -out request.pem

Nesta fase, você precisará inserir seus dados, que irão identificá-lo no certificado.

Degrau 3 (Geramos uma chave privada a partir do certificado)

Execute o comando:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

Passo 4 (Gerando uma chave pública)

Execute o comando:

openssl pkcs8 -topk8 -outform DER -in key.pem -inform PEM -out key.pk8 -nocrypt

Nesta fase, a criação dos arquivos de que precisamos para assinar seus jogos e aplicativos está concluída. usando a chave e o certificado gerados, você pode assinar quantos jogos e aplicativos no Android desejar.

Agora, na verdade, vamos começar a assinar o aplicativo. Descompacte o arquivo com SingApk baixado do link acima. Mova 2 arquivos da pasta Bin onde criamos o certificado e a chave: certificado.pem e key.pk8 para a pasta onde você descompactou o SingApk. O Windows deve exibir uma caixa de diálogo de substituição de arquivo - substituir.

Agora, a fim de assinar o arquivo apk com um exclusivo assinado digitalmenteque você mesmo criou, basta arrastar e soltar seu arquivo apk para sign_APK.bat... Para não arrastar o arquivo de uma janela para outra (isso não é conveniente), mova seu arquivo apk para a pasta com SingApk. Após a execução, o arquivo aparecerá na pasta com SingApk apk_signed.apk, que será seu aplicativo ou jogo assinado.

Visualizações da postagem: 5 618

Android Studio oferece amplas oportunidades para o desenvolvimento de aplicativos e para aumentar a automação e a conveniência da programação.

Se você estiver usando um sistema de construção Gradle para criar seus aplicativos, você também pode configurar várias opções para criar assinaturas para seus aplicativos.

Provavelmente você não deseja publicar suas chaves de assinatura, senhas e nomes de usuário em um repositório público (ou mesmo privado). Portanto, você pode definir a chave, a senha e o nome de usuário como propriedades em um arquivo separado.

Antes de começar a assinar seu aplicativo, você precisa criar uma nova propriedade no arquivo gradle.properties. Vamos chamá-lo Keys.repo e, como um valor, especifique o caminho para a pasta onde o keystore e o arquivo com as propriedades serão posteriormente localizados (por exemplo, C: /Users/UserName/.signing).

Keys.repo \u003d C: /Users/UserName/.signing

Em seguida, você precisa criar essa pasta ou, se especificou uma existente, abri-la. Nele você precisa criar um arquivo YourProjectName.properties, dentro do qual o caminho para o armazenamento de chaves, o alias da chave e a senha no formato a seguir serão gravados como propriedades.

RELEASE_STORE_FILE \u003d / YourProjectName / KeyStoreName.jks RELEASE_STORE_PASS \u003d ****** RELEASE_ALIAS \u003d KeyAlias \u200b\u200bRELEASE_KEY_PASS \u003d ******

Como faço para criar um armazenamento de chaves?

Se você não tiver um keystore, ele pode ser facilmente criado com usando Android Estúdio. Para fazer isso, selecione o item no menu Construir -> Gerar APK assinado.

Na janela que aparece, clique em Crie um novo ...Como resultado, uma janela será aberta na qual você pode especificar onde o armazenamento de chaves será localizado (para esta lição, é melhor selecionar imediatamente o caminho que você especificou em YourProjectName.propertiesna propriedade RELEASE_STORE_FILE), bem como dados importantes.

Então você precisa criar uma pasta YourProjectName e transfira o arquivo keystore necessário para lá.

Agora você pode começar diretamente com o processo de assinatura. Para fazer isso, em seu projeto você precisa abrir o arquivo build.gradle (localizado na pasta do aplicativo). Dentro dele no bloco andróide você precisa adicionar o seguinte código.

SigningConfigs (debug (/ * sem alterações aqui * /) release (if (project.hasProperty ("Keys.repo")) (def projectPropsFile \u003d file (project.property ("Keys.repo") + "/YourProjectName.properties" ) if (projectPropsFile.exists ()) (Propriedades props \u003d new Properties () props.load (new FileInputStream (projectPropsFile)) storeFile file (file (project.property ("Keys.repo") + props ["RELEASE_STORE_FILE"]) ) storePassword props ["RELEASE_STORE_PASS"] keyAlias \u200b\u200bprops ["RELEASE_ALIAS"] keyPassword props ["RELEASE_KEY_PASS"])) else (println "\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d "println" - Configure o ambiente de compilação de lançamento - por exemplo, em ~ /. diretório de assinatura "println" \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d ")))

Quais são os esquemas para obter uma assinatura?

Existem dois esquemas para obter uma assinatura APK: v1 JAR e v2 APK completo.

No primeiro caso, se inscreve JAR-file, que é a forma tradicional de assinatura. A assinatura V1 não protege certas partes do APK, como metadados ZIP. Um verificador de APK deve lidar com muitas estruturas de dados não confiáveis \u200b\u200b(ainda não verificadas) e, em seguida, descartar os dados que não estão assinados, o que oferece muito espaço para ataques. Além disso, o verificador de APK precisa descompactar todos os registros compactados, o que desperdiça muito tempo e memória. Para resolver esses problemas, um segundo circuito APK completo v2 foi desenvolvido.

O esquema v2 foi introduzido em Android 7.0 Nougat (API 25)e funciona desde a versão Android Studio 2.2 e Plug-in Android Gradle 2.2... Este esquema fornece instalação mais rápida do aplicativo e boa proteção contra mudanças não autorizadas no APK. O conteúdo do APK é hash e assinado, em seguida, recuperado Bloco de assinatura APKé inserido no APK.

Durante a verificação, o esquema v2 trata o APK como um blob e executa a verificação de assinatura em todo o arquivo. Qualquer modificação no APK, incluindo modificações nos metadados ZIP, invalida a assinatura. Essa forma de verificação é muito mais rápida e permite que mais modificações não autorizadas sejam detectadas.

O novo formato é compatível com versões anteriores, portanto, os APKs assinados com o novo esquema podem ser instalados em dispositivos anteriores (que simplesmente ignorarão a nova assinatura) se esses APKs também forem assinados com a v1.

Por padrão, a assinatura usa os dois esquemas para que os aplicativos possam ser instalados em qualquer dispositivo. No entanto, se necessário, você pode desativar a assinatura v1 ou v2. Para fazer isso, no código acima no bloco lançamento apenas adicione as seguintes linhas.

V1SigningEnabled false

V2SigningEnabled false

Também é importante ter em mente que você precisa assinar com o esquema v1 antes de assinar com o esquema v2, uma vez que o APK não passará na verificação v2 se for assinado com certificados adicionais após a assinatura com o esquema v2.

Depois que o código for adicionado, especifique este código no bloco buildTypes dentro lançamento... Por exemplo:

BuildTypes (release (minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile ("proguard-android.txt"), "proguard-rules.pro" assinaturaConfig assinaturaConfigs.release))

Agora você pode com segurança no item de menu Construir escolher Construir APK, tendo alterado anteriormente o tipo de montagem de depurar em lançamento... Como você pode ver, este método é conveniente porque é automático, basta configurá-lo apenas uma vez e seus keystores ficam seguros.

Com o recurso App Signing no Google Play, o Google pode gerenciar sua chave de assinatura de app, bem como proteger essa chave e usá-la para assinar seus APKs para distribuição. Este método de armazenamento irá protegê-lo caso a chave seja perdida ou hackeada.

Importante! Para usar Android App Bundles (o formato de publicação de aplicativo recomendado), você deve se inscrever no Google Play App Signing Program antes de enviar o App Bundle para o Play Console.

Os titulares de contas e usuários com permissões de redação global que aceitaram os Termos de Serviço podem se registrar. Você só pode registrar um aplicativo por vez no Programa de assinatura de aplicativos no Google Play.

Princípios de trabalho

Quando você usa o recurso App Signing do Google Play, suas chaves são armazenadas usando a mesma infraestrutura das chaves do Google e protegidas por um serviço dedicado de gerenciamento de chaves. Para obter mais informações sobre a infraestrutura técnica do Google, consulte a documentação de segurança do Google Cloud.

Os aplicativos Android são assinados com uma chave privada. Cada uma dessas chaves está associada a um certificado público, com o qual dispositivos e serviços podem verificar a segurança dos aplicativos e suas atualizações. Apenas essas atualizações são instaladas em dispositivos cuja assinatura corresponda à assinatura do aplicativo instalado. Permitir que o Google gerencie a chave de assinatura do aplicativo torna esse processo mais seguro.

Nota. É opcional usar o recurso de assinatura de aplicativo no Google Play. Você pode fazer upload de APKs e gerenciar suas próprias chaves sem usar App Bundles. No entanto, se você perder o acesso ao armazenamento de chaves ou se ele for comprometido, não será possível atualizar seu aplicativo e terá que republicá-lo com um nome de pacote diferente.

Descrições de chaves, objetos e ferramentas
Condições Descrição
Chave de assinatura do aplicativo

A chave usada pelo Google Play para assinar APKs entregues ao dispositivo do usuário. Ao se inscrever no programa Google Play App Signing, você pode fazer upload de uma chave de assinatura existente ou permitir que o Google gere uma nova.

Chave de inicialização

Existem duas maneiras de gerar uma chave de inicialização:

  • Use a chave de assinatura do app. Se você permitiu que o Google gerasse uma chave de assinatura do aplicativo ao se inscrever no programa, a chave de download será a chave usada para assinar a primeira versão do aplicativo.
  • Use uma chave de inicialização separada. Se você forneceu sua própria chave de assinatura do aplicativo ao registrar-se no programa, pode gerar uma nova chave de download para segurança. Se você não quiser fazer isso, use a chave de assinatura do aplicativo como a chave de download para assinar novos lançamentos.
Certificado (.der ou .pem)

Um certificado que contém a chave pública e informações adicionais sobre seu proprietário. Um certificado de chave pública permite que qualquer pessoa saiba quem assinou um App Bundle ou APK. Este certificado é compartilhável, pois não inclui uma chave privada.

Para registrar chaves com provedores de API, você pode baixar o certificado público para sua chave de assinatura de aplicativo em Aplicativos de assinatura no Play Console. O certificado de chave pública pode ser compartilhado com todos, pois não inclui a chave privada.

Impressão digital digital do certificado

Um identificador curto e exclusivo para o certificado. A impressão digital, junto com o nome do pacote, é frequentemente solicitada por provedores de API para fornecer acesso a seus serviços.

As impressões digitais MD5, SHA-1 e SHA-256 de certificados de download e assinatura de aplicativo podem ser encontradas em Aplicativos de assinatura no Play Console. Você também pode obter um tipo diferente de impressão digital. Para fazer isso, baixe o certificado original formatado por DER na mesma página.

Keystore Java (.jks ou .keystore) Um repositório de certificados de segurança e chaves privadas.
Ferramenta PEPK

Ferramenta para exportar chaves privadas de armazenamento Java e criptografá-las para transferência para o Google Play.

Depois de fornecer ao Google sua chave de assinatura de aplicativo, opte por exportar e fazer upload de sua própria chave (e seu certificado público, se necessário) e siga as instruções para baixar e usar a ferramenta. Você também pode baixar, visualizar e usar a ferramenta PEPK de código aberto.

Processo de assinatura de inscrição

Você pode fazer upload de APKs assinados com a chave de assinatura de aplicativo original antes ou depois de assinar o aplicativo no Google Play.

Se você vai para kits android App Bundle, eles podem ser testados em versões para teste e em produção usando arquivos APK existentes. É assim que funciona:

  1. Você assina o App Bundle ou APK e faz o upload para o Play Console.
  2. O processo de assinatura do aplicativo depende do que você baixa.
    • App Bundle. O Google otimiza os APKs do App Bundle e os assina com a App Signing Key.
    • Arquivo APK assinado com a chave de upload. O Google verifica sua assinatura, remove-a e assina novamente os APKs com a chave de assinatura do app.
    • Arquivo APK assinado com a chave de assinatura do app. O Google verifica a assinatura.
  3. O Google entrega APKs assinados aos usuários.

Inscreva-se no programa de assinatura de aplicativos no Google Play

Novos aplicativos

Etapa 1. Crie uma chave de inicialização

  1. Crie uma chave de inicialização seguindo as instruções.
  2. Assine o novo arquivo APK com a chave de upload.

Etapa 2. Prepare o lançamento

  1. seguindo as instruções.
  2. Depois de selecionar o tipo de versão, configure as opções de assinatura do aplicativo em Permitir que o Google proteja e gerencie sua chave de assinatura do aplicativo.
  3. Se você clicar Continuar, a chave gerada se tornará a chave de upload que será usada para assinar versões futuras. Você também pode escolher o seguinte configurações avançadas:
    • Use uma chave para diferentes aplicativos na conta do desenvolvedor (opção 2).
    • Carregue a chave de assinatura de um aplicativo existente (opções 2, 3 e 4), escolhendo o método de exportação e download mais adequado. Depois de baixar a chave de assinatura do aplicativo e seu certificado público, você pode usar a chave de assinatura do aplicativo como ela.

Nota. Para continuar, você deve aceitar os Termos de Serviço e se inscrever no Programa de Assinatura de Aplicativos.

Etapa 3. Registre sua chave de assinatura de aplicativo com provedores de API

Se seu aplicativo usa uma API, para autenticar, você provavelmente precisará registrar um certificado de chave com o qual o Google assina seu aplicativo. Para encontrar um certificado:

  1. Faça login no Play Console.
  2. Selecione um aplicativo.
  3. No menu à esquerda, selecione Gerenciamento de liberação > Assinaturas de aplicativos.
    • Se o provedor de API exigir um tipo diferente de impressão digital, você pode baixar o certificado DER original e convertê-lo conforme necessário usando as ferramentas apropriadas.
Aplicativos publicados

Etapa 1. Inscreva-se no programa de assinatura de aplicativos no Google Play

  1. Faça login no Play Console.
  2. Selecione um aplicativo.
  3. No menu à esquerda, selecione Gerenciamento de liberação > Assinaturas de aplicativos.
  4. Se necessário, leia os Termos de Serviço e clique em Aceitar.

Etapa 2. Envie a chave original para o Google e crie uma chave de download

  1. Encontre a chave de assinatura do app original.
  2. Faça login no Play Console.
  3. Selecione um aplicativo.
  4. No menu à esquerda, selecione Gerenciamento de liberação > Assinaturas de aplicativos.
  5. Carregue sua chave de assinatura de aplicativo existente usando o método que melhor se adapte ao seu processo de lançamento.
  1. e carregue o certificado no Google Play.
    • Você também pode usar a chave de assinatura do aplicativo como a chave de download.
  2. Copie as impressões digitais (MD5, SHA-1 e SHA-256) do certificado de assinatura do aplicativo.
    • Para teste, pode ser necessário registrar um certificado de chave de download com o provedor de API usando a impressão digital do certificado e a chave de assinatura do aplicativo.

Etapa 4. Assine a próxima atualização do seu aplicativo com a chave de download

As atualizações de aplicativos lançadas devem ser assinadas com uma chave de download.

Como criar uma chave de boot e atualizar keystores

Você pode gerar uma chave de download ao se inscrever no App Signing Program no Google Play ou pode gerá-la posteriormente em Gerenciamento de liberação > Assinaturas de aplicativos.

Para criar uma chave de inicialização, siga estas etapas:

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

Se você estiver usando uma chave de inicialização:

  • A chave de upload é registrada no Google apenas para autenticar a identidade do criador do aplicativo.
  • Sua assinatura é removida de todos os APKs carregados antes que eles cheguem aos usuários.
Limitações
  • A chave de upload deve usar criptografia RSA e deve ter pelo menos 2.048 bits de tamanho.
  • Chaves DSA e EC e chaves RSA menores que 2.048 bits não são suportadas.
Atualizando lojas de chaves

Depois de gerar a chave de upload, verifique e atualize os seguintes locais conforme necessário:

  • sistema local;
  • servidor local seguro (com listas de controle de acesso diferentes);
  • sistema em nuvem (com diferentes listas de controle de acesso);
  • serviços especiais para gerenciamento de chaves;
  • repositórios Git.

Como atualizar a chave de assinatura para novas instalações de aplicativos

Em alguns casos, você pode solicitar uma atualização da chave de assinatura do aplicativo. A nova chave será usada para assinar novas instalações e atualizações do aplicativo, e a chave desatualizada será usada para atualizações das versões assinadas por ele, que já estão instaladas pelos usuários.

A chave de assinatura só pode ser atualizada uma vez para cada aplicativo. No caso improvável de você usar a mesma chave de assinatura para vários aplicativos serem executados no mesmo processo, a chave não poderá ser atualizada.

Uma atualização da chave de assinatura do aplicativo deve ser solicitada nos seguintes casos:

  • Você precisa de uma chave criptográfica mais forte.
  • A chave de assinatura do app foi comprometida.

Nota. A solicitação para atualizar a chave de assinatura do app no \u200b\u200bPlay Console não está relacionada à substituição da chave para Android P e posterior. Esta substituição de chave atualmente não é compatível com o Google Play.

Observações importantes sobre a atualização de chaves

Antes de solicitar uma atualização de chave, é importante entender quais mudanças isso acarretará.

  • Se você estiver usando a mesma chave de assinatura para vários aplicativos para usar o mesmo código ou dados, você precisa atualizar os aplicativos para reconhecer as chaves novas e desatualizadas.
  • Se seu aplicativo usa uma API, certifique-se de registrar certificados para as chaves de assinatura de aplicativo novas e desatualizadas com o provedor de API antes de atualizá-lo. Os certificados estão disponíveis na página Aplicativos de assinatura Play Console.
  • Se muitos usuários de seu aplicativo instalarem atualizações por meio de redes de compartilhamento de arquivos, eles só poderão instalar atualizações assinadas com a mesma chave do aplicativo instalado em seus dispositivos. Se os aplicativos não podem ser atualizados porque versão instalada assinado com uma chave diferente, os usuários podem desinstalá-lo e reinstalá-lo para receber atualizações.
Solicite uma atualização de chave para novas instalações. Para fazer isso, siga estas etapas:
  1. Faça login no Play Console.
  2. Selecione um aplicativo.
  3. No menu à esquerda, selecione Gerenciamento de liberação > Assinaturas de aplicativos.
  4. No cartão "Atualizar chave de assinatura para novas instalações de aplicativos", selecione Solicitar atualização de chave.
  5. Escolha o que fazer com o seu dispositivo.
    • Dependendo da opção que você escolher, pode ser necessário entrar em contato com o suporte para concluir sua solicitação.
  6. Permita que o Google Play gere uma nova chave de assinatura do aplicativo (recomendado) ou faça o download.
    • Depois de atualizar a chave de assinatura do aplicativo, se essa chave era a mesma que a chave de download, você pode continuar a usar a chave de assinatura do aplicativo antiga como a chave de download ou criar uma nova.
  • Se você também publicou seu aplicativo fora do Google Play, ou pretende fazê-lo, pode gerar uma chave compartilhada de aplicativo e carregá-la no Google ao se inscrever no Programa de assinatura de aplicativo no Google Play.
  • Para proteger sua conta, habilite a verificação em duas etapas para todas as contas com acesso ao Play Console.
  • Depois de publicar o App Bundle em uma versão de teste ou de produção, você pode abrir o App Bundle Explorer e baixar um arquivo ZIP contendo todos os APKs para um dispositivo específico. Esses APKs já estão assinados com a chave de assinatura do app. Você pode instalá-los no dispositivo a partir de um arquivo ZIP usando o utilitário linha de comando bundletool.
  • Para maior segurança, gere uma nova chave de download que seja diferente da chave de assinatura do aplicativo.
  • Se você deseja testar um APK assinado com uma chave de upload, registre a chave em um serviço ou API que usa uma assinatura de aplicativo para autenticação (como a API do Google Maps ou o kit de desenvolvedor do Facebook).
  • Se estiver usando APIs do Google, você pode registrar seu certificado de upload no Google Cloud Console.

O que fazer se a chave for perdida ou hackeada

Se você perdeu o acesso à sua chave privada de download ou se ela foi comprometida, pergunte ao proprietário da conta. Ao entrar em contato com o suporte, o proprietário da conta deve anexar o arquivo upload_certificate.pem.

Assim que a equipe de suporte registrar a nova chave de download, você receberá um e-mail e poderá atualizar os keystores e registrar a chave com os provedores de API.

Importante! A redefinição da chave de upload não afeta a chave de assinatura do app, que o Google Play usa para assinar APKs antes de enviá-los aos usuários.

Essa informação foi útil?

Como este artigo pode ser melhorado?

Última atualização: 30/10/2015

Depois de criar o aplicativo, testá-lo e depurá-lo, podemos começar a publicá-lo. A essência da publicação é criar um arquivo com a extensão .apk, que representará o aplicativo e sua posterior colocação no Google Play Market ou em outros sites externos. Por padrão, durante o processo de depuração e construção do aplicativo, o arquivo apk já é criado, e podemos encontrá-lo na pasta do projeto ao longo do caminho Project_name \\ app \\ build \\ outputs \\ apk... Por padrão, o arquivo é denominado app-debug.apk e representa a versão de depuração.

Mas esse arquivo pode não ser suficiente para uma publicação completa. E ainda precisamos fazer alguma preparação do projeto para lançamento. Para fazer isso, especifique no arquivo de manifesto do elemento os atributos android: versionCode e android: versionName são definidos. Também no arquivo de manifesto, o elemento não deve conter android: atributo debuggable

Além disso, nesta fase, você pode definir o ícone do aplicativo, que será exibido na tela de trabalho do gadget, o nome do aplicativo (o atributo android: label do elemento), e você também pode definir o contrato de licença.

O arquivo de manifesto também deve definir o nome do pacote (o atributo do pacote do ), que será usado para o aplicativo posteriormente. Por padrão, ao desenvolver no Android Studio, os pacotes de aplicativos começam com com.example... Não deixe esse nome, pois o nome do pacote servirá como um identificador exclusivo para seu aplicativo. Por exemplo, abaixo, no meu caso, o nome do pacote é "com.maverics.eugene.telephonelist":

Além disso, se em arquivos de código java, o nome do pacote no início do arquivo também deve corresponder ao pacote do aplicativo.

Requisitos de configuração

Durante a fase de pré-lançamento, você também pode definir requisitos de API. Por exemplo, nosso aplicativo tem uma certa versão mínima do sistema operacional Android, para que possamos definir os atributos correspondentes do elemento no arquivo de manifesto

    android: minSdkVersion - versão mínima do Android

    android: targetSdkVersion - versão de API ideal

    android: maxSdkVersion - versão máxima do sistema

Por exemplo, digamos que a versão mínima do Jelly Beans seja 4.1.2 e a versão ideal seja KitKat 4.4.4:

//.............................

Assinatura do aplicativo

Quando tudo estiver pronto, o aplicativo Android deve ser assinado com um certificado, graças ao qual o autor do aplicativo pode ser identificado. Quando testamos um aplicativo instalando-o por meio do Android Studio em um dispositivo, ele é assinado automaticamente. Mas, para criar uma versão de lançamento, precisamos realizar uma série adicional de ações.

Ao criar um certificado, lembre-se que quando o aplicativo for atualizado, o sistema irá comparar os certificados da versão antiga com a nova. E a atualização ocorrerá se os certificados de ambas as versões corresponderem. Mas se uma nova versão será assinado com um novo certificado, então o aplicativo será considerado como completamente novo, não conectado de forma alguma com versão antiga e representando uma aplicação completamente diferente. Neste caso, para instalá-lo, a nova versão deve ter um nome de pacote diferente do antigo.

Primeiro, no Android Studio, selecione Build -\u003e Generate Signed APK no menu. Depois disso, uma janela do assistente se abrirá para nós:

Clique no botão Criar novo .... Depois disso, a janela de criação de chave se abrirá para nós:

No campo Caminho do armazenamento de chaves, insira o caminho para o arquivo de certificado que será criado. Se a pasta especificada não existir, ela deve ser criada ou uma pasta existente deve ser definida.

Digite a senha no campo Senha / Confirmar.

No campo Alias, especifique um alias. Você pode colocar um nome arbitrário.

No campo Nome e Sobrenome, digite o nome e o sobrenome. E então escrevemos a divisão, organização, cidade, país e código do país.

Finalmente, clique em OK.

Depois disso, a primeira janela será atualizada automaticamente:

A janela final irá mostrar-nos o caminho para o diretório onde o assinado estará localizado app apk na versão de lançamento. Clique em Concluir.

Agora, ao longo do caminho especificado, você pode encontrar o apk assinado, que terá o nome app-release.apk:

Podemos renomear o arquivo, mantendo sua extensão e enviá-lo para o Play Market ou qualquer site, ou baixá-lo imediatamente para um dispositivo móvel. Após fazer o download para o seu telefone / tablet, basta clicar nele e, usando o instalador do pacote padrão, o aplicativo será instalado. É verdade, aqui também precisamos levar em conta que, se instalarmos um aplicativo que não seja do Play Market, nas configurações devemos permitir a instalação de outras fontes - Segurança-\u003e Fontes desconhecidas (Permitir a instalação de aplicativos de outras fontes)