Assinatura de código para Android
Neste artigo, você aprenderá como usar assinatura de código no Android (APK). Você precisará assinar seu aplicativo para Android, se tiver selecionado Android como uma das plataformas ao criar seu projeto de empacotamento.
Importante
Se você quiser assinar um aplicativo AAB para distribuição no Google Play, consulte Assinar seu aplicativo.
Prepare seu computador
Você precisa das seguintes informações para começar:
- Instalar o Android Studio
- Instalar o OpenSSL
Gerar chaves
Observação
Pule para assinar o pacote APK se você já tiver gerado chaves e hash de assinatura ao criar o registro de aplicativo.
Usaremos keytool.exe (disponível após a instalação do Android Studio, no local da pasta "Drive:\Program Files\Android\Android Studio\jre\bin\keytool.exe") para criar um certificado para assinar o pacote de aplicativos. Keytool é usado para gerenciar um keystore (banco de dados) de chaves criptográficas, cadeias de certificados X.509 e certificados confiáveis.
Para gerar uma chave, abra um prompt de comando e execute o seguinte comando:
keytool -genkey -alias SIGNATURE_ALIAS -keyalg RSA -keystore PATH_TO_KEYSTORE -keysize 2048 -validity 10000
Parâmetros:
- genkey - comando para gerar uma chave.
- alias - indica o alias a ser usado no futuro para fazer referência à entrada do keystore que contém as chaves que serão geradas.
- keyalg - nome do algoritmo-chave.
- keystore - nome do keystore que você está usando.
- keysize - o tamanho de cada chave a ser gerada.
- validity - validade da chave em número de dias.
Exemplo:
Se estiver preparando o Key Vault, PATH_TO_KEYSTORE deve ter extensão .pfx.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.pfx -keysize 2048 -validity 10000
Se estiver preparando para assinatura manual, PATH_TO_KEYSTORE deve ter extensão .jks.
keytool -genkey -alias powerappswrap -keyalg RSA -keystore powerappswrap.jks -keysize 2048 -validity 10000
Gerar hash de assinatura
Observação
Pule para assinar o pacote APK se você já tiver gerado chaves e hash de assinatura ao criar o registro de aplicativo.
Depois de gerar a chave, o comando exportcert será usado em keytool para exportar o certificado do keystore.
keytool -exportcert -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE | openssl sha1 -binary | openssl base64
Parâmetros:
- exportcert - lê do keystore o certificado associado ao alias e o armazena no arquivo cert_file. Quando nenhum arquivo é especificado, o certificado é enviado para stdout.
- alias - o alias usado ao gerar chaves anteriormente.
- keystore - nome do keystore que você está usando.
- openssl - gera a chave SHA1 para Android.
Adicione o hash de assinatura gerado no URI de Redirecionamento ao registrar o aplicativo.
Converter hexadecimal SHA1 em hash de assinatura codificado em Base64 manualmente
Você pode ver o seguinte erro se seu hash de assinatura não estiver codificado corretamente ou for inaceitável no portal do Azure:
"O hash de assinatura deve ser SHA1 codificado em base64."
Quando esse erro aparecer, tente gerar o hash de assinatura usando as seguintes etapas:
- Execute
keytool -list -v -alias SIGNATURE_ALIAS -keystore PATH_TO_KEYSTORE
para listar as informações do certificado no modo detalhado. - Copie o valor SHA1 na seção Impressões digitais do certificado da saída. Certifique-se de copiar apenas o valor hexadecimal.
Por exemplo:EF:11:45:3D:F1:72:D9:8C:43:32:CD:0A:49:C2:E4:75:2D:B3:2D:9F
- Use qualquer conversor "Hexadecimal para Base64" disponível para converter o valor hexadecimal da impressão digital do certificado copiado em valor codificado em Base64.
Exemplo do valor codificado em Base64:8CPPeLaz9etdqQyaQubcqsy2Tw=
- Copie o valor codificado em Base64 gerado como o Hash de assinatura no portal do Azure ao registrar o aplicativo.
Assinar o pacote APK
Para assinar o pacote APK, usaremos a ferramenta apksigner. Essa ferramenta permite que você assine APKs e garanta que a assinatura do pacote APK seja verificada com sucesso em todas as plataformas Android compatíveis com os APKs.
Localizar seu apksigner
Verifique o caminho SDK do Android no Android Studio.
Selecione Ferramenta > Gerenciador do SDK > Localização do SDK do Android.
Se estiver usando iOS, verifique o arquivo apksigner no diretório Versão de buildTools:
Acesse o diretório SDK > ferramentas de compilação > buildToolsVersion > lib e verifique o arquivo apksigner.jar
Usar o arquivo apksigner
Execute o seguinte comando para usar o apksigner e assinar o pacote:
apksigner.bat sign --ks PATH_TO_KEYSTORE --ks-key-alias KEY_ALIAS PATH_TO_APK
Parâmetros:
- ks - caminho para o keystore.
- ks-key-alias - caminho do alias da chave para o arquivo APK.
Quando solicitado, digite a senha.
Mais informações: Ferramentas de linha de comando do Android Studio: apksigner
Distribuir o aplicativo
Você pode hospedar o pacote em um serviço de distribuição, como App Center. Para distribuir usando o Microsoft Intune, consulte Adicionar um aplicativo de linha de negócios Android para Microsoft Intune. Para saber como conceder a um aplicativo acesso ao serviço de proteção de aplicativo do Intune, consulte Conceder ao seu aplicativo acesso ao serviço de proteção de aplicativo do Intune.