Compartilhar via


Assinatura de código para Android

Este artigo explica como usar assinatura de código manualmente em seu aplicativo Android (APK) para empacotamento do Power Apps. Assine seu aplicativo para Android se você selecionar Android como uma das plataformas ao criar e compilar seu projeto de empacotamento.

Importante

Para assinar um aplicativo AAB para a distribuição do Google Play, consulte Assinar seu aplicativo.

Antes de começar

Software necessário

Antes de começar, instale e configure:

Pré-requisitos

Você precisará:

  • O nome do aplicativo para criar a chave de hash.
  • O arquivo APK mais recente para entrar.

Observação

Use a extensão .jks para assinatura manual e a extensão .pfx para assinatura automática.

Gerar chave e hash de assinatura

Observação

Pule para Assinatura manual se você já tiver gerado chaves e o hash de assinatura ao criar o registro de aplicativo.

Configurar variáveis de ambiente

Se você não definir variáveis de ambiente:

  1. Baixe e instale o Android Studio e o OpenSSL.
  2. Adicione keytool e openssl à sua variável de ambiente PATH:
    • Adicione C:\Program Files\Android\Android Studio\jbr\bin ao seu PATH.
    • Adicione o caminho de openssl.exe (por exemplo, C:\Program Files\OpenSSL-Win64\bin) ao seu PATH.

Gerar keystore e chave

Execute este comando para gerar uma chave:

keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000

Quando solicitado:

  1. Introduza uma palavra-passe para o armazenamento de chaves.
  2. Insira seu nome, organização, local e outros detalhes necessários.
  3. Confirme as informações.

Uma captura de tela com o comando keytool usando os parâmetros no exemplo anterior.

Gerar hash de assinatura

Execute este comando para gerar o hash de assinatura:

keytool -exportcert -alias powerappswrap -keystore powerappswrap.jks | openssl sha1 -binary | openssl base64

Quando solicitado, digite a senha do keystore que você criou anteriormente.

Uma captura de tela com o comando keytool usando os parâmetros no exemplo mostrado anteriormente.

Formato de comando alternativo

Se você tiver variáveis de ambiente definidas, poderá usar o formato genérico:

keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000

Parâmetros explicados:

Parâmetro Description
genkey Comando para gerar uma chave
alias Alias para a entrada do keystore
keyalg Nome do algoritmo-chave
keystore Nome do keystore
keysize Tamanho de cada chave
validade Validade da chave em dias

Exemplos:

  • Para Key Vault (assinatura automática), use uma extensão .pfx:

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
    
  • Para assinatura manual, use uma extensão .jks:

    keytool -genkey -alias powerappswrap -keyalg RSA -keystore \Users\name\Desktop\powerappswrap.jks -keysize 2048 -validity 10000
    

Exportar certificado e gerar hash de assinatura

Após gerar a chave, exporte o certificado do keystore usando o exportcert:

keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64

Quando solicitado, digite a senha do keystore.

Parâmetros explicados:

Parâmetro Description
exportcert Lê o certificado do keystore
alias Alias usados ao gerar chaves
keystore Nome do keystore
openssl Gera a chave SHA1 para Android

Adicione o hash de assinatura gerado na URI de redirecionamento ao registrar o aplicativo.

Converter hexadecimal SHA1 em hash de assinatura codificado em Base64

Se você vir o erro "O hash de assinatura deve ser SHA1 codificado em base64" no portal Azure, execute estas etapas:

  1. Execute o seguinte comando. Substitua <SIGNATURE_ALIAS> e <PATH_TO_KEYSTORE> por seus próprios valores.

    keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
    
  2. Quando solicitado, digite a senha do keystore.

  3. Copie o valor SHA1 da seção Impressões digitais do certificado.

    • Por exemplo: EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
  4. Use um conversor "Hexadecimal para Base64" para converter o valor SHA1 em Base64.

    • Por exemplo: 8CPPeLaz9etdqQyaQubcqsy2Tw=
  5. Use o valor codificado em Base64 gerado como o Hash de assinatura no portal do Azure ao registrar o aplicativo.

Assinatura manual do pacote APK

Siga estas etapas se não utilizar a entrada automática durante o empacotamento ou se tentar carregar um arquivo AAB para a Play Store. Para evitar a repetição desse processo, use a entrada automática sempre que possível.

Localize a ferramenta apksigner

  1. Abra Android Studio.
  2. Vá para Ferramentas>Gerenciador do SDK>Localização do SDK do Android para localizar o caminho do SDK.
  3. No diretório SDK, navegue para:
    • build-tools>[número da versão]> localizar apksigner.bat (Windows) ou apksigner (Mac/Linux)
    • Ou: build-tools>[número da versão]>lib> localizar apksigner.jar

Uma captura de tela com informações de localização do apksigner.

Assine o arquivo APK

Execute este comando para assinar seu APK:

apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK

Parâmetros explicados:

Parâmetro Description
ks Caminho para o arquivo keystore (por exemplo, C:\Users\name\Desktop\powerappswrap.jks)
ks-key-alias O alias usado ao gerar a chave (por exemplo, powerappswrap)
PATH_TO_APK Caminho completo para seu arquivo APK (por exemplo, C:\Users\name\Downloads\MyApp.apk)

Quando solicitado, digite a senha do keystore.

Exemplo:

apksigner.bat sign --ks C:\Users\name\Desktop\powerappswrap.jks --ks-key-alias powerappswrap C:\Users\name\Desktop\MyApp.apk

Verificar a assinatura

Após assinar, verifique a assinatura APK com:

apksigner.bat verify --verbose PATH_TO_APK

Uma verificação bem-sucedida confirma que seu APK está devidamente assinado e pronto para distribuição.

Para obter mais informações, consulte Ferramentas de linha de comando do Android Studio: apksigner.

Distribuir o aplicativo

Depois de assinar seu aplicativo, você pode distribuí-lo usando vários métodos:

Opções de distribuição

Consultar também