Replying to Avatar Igor

# Vamos falar sobre assinatura de um APK?

Neste artigo gostaria de falar sobre como podemos assinar um APK ‘manualmente’, mas por que alguém iria querer fazer isso sendo que o Delphi já assina automaticamente o APK/AAB?

Antes de responder, gostaria de recomendar a leitura de outro artigo que escrevi “Qual a relação da KeyStore, PackageName e seu APP?” [1], não continue a leitura se você ainda não leu/entendeu este artigo! Atente-se também aos comentários no mesmo artigo, visto que são importantes para melhor entendimento do problema dos dois assuntos.

Respondendo à pergunta:

Muitos são os casos que precisamos distribuir nossos APKs fora da loja, e baseado no artigo sobre a KeyStore sabemos que precisamos compilar nosso APK em RELEASE+Application Store, só que em 64bits o Delphi (10.4+) gera um AAB e não um APK.

Neste artigo irei demonstrar uma das várias técnicas possíveis de ter seu APK Release 64bits para ser distribuído para seus clientes.

Fiz testes apenas nas versões do Delphi 10.4.2 e 12.2, então talvez para sua versão possa ser diferente, sinta-se à vontade para fazer uso do Google caso encontre algum problema. Ele costuma ajudar bastante.

Devido a diferenças entre as duas versões do Delphi, estarei escrevendo nos comentários a solução proposta para assinatura do APK Release 64bits.

Por favor, leia a parte de [Pré-requisitos] e depois encontre o comentário que atende à sua realidade. Talvez sua versão do Delphi seja diferente, mas seu SDK possui os arquivos corretos para o ‘serviço’, o que também resolverá o problema.

Também recomendo o uso do software “Everything” [2], que facilitará muito encontrar arquivos no seu PC.

[Pré-requisitos] comuns entre todas versões do Delphi:

Para começar, vamos primeiro gerar o APK em 64bits, seguindo na contramão do artigo “Qual a relação da KeyStore, PackageName e seu APP?”

Pq? Para não gerarmos automaticamente o AAB, visto que não precisamos de um AAB, mas sim um APK.

Por favor, configure e compile seu projeto na seguinte configuração:

Target: Android 64 bits

Build: RELEASE

Configuration: Development

Baseado no artigo “Qual a relação da KeyStore, PackageName e seu APP?”, sabemos que o APK resultante neste processo será assinado com uma KeyStore aleatória do Delphi, o que é NÃO recomendado, mas aqui entra a beleza da solução proposta…

Agora vá nos comentários e encontre a solução que atenda seu ambiente de trabalho.

# Referências:

[1] “Qual a relação da KeyStore, PackageName e seu APP?” https://nostrudel.ninja/#/n/nevent1qvzqqqqqqypzpdvpeyfrlddvrymt056g2jmtvc6cgntlrsumk3zcwevcl47lsfc0qyt8wumn8ghj7mn0wd68ytnyv96xztngv96hxtcpr3mhxue69uhhxarjvee8jtnwdaehgu3wd35kw6r5d9hxwtcqyzaq6e4lgapz6fc5n28vhepekrhtheguwe2lsxu39chyl3mey895sfhmc8l

[2] Everything https://www.voidtools.com/downloads/

#Delphi #Embarcadero #RadStudio #Android #APP #Mobile #Dev #Development #KeyStore #Sign #Signature #ApplicationStore

[build-tools]

Algumas versões do Delphi não baixam o “build-tools” do Android SDK de forma automática, nos forçando a baixar manualmente.

Irei explicar como fazer o download utilizando o arquivo ‘sdkmanager.bat’ da pasta ‘command-lines’ disponível no Delphi 11+.

Para este tutorial, é recomendado assistir ao vídeo do Landerson Gomes sobre como utilizar os comandos do terminal no Delphi [1].

Após assistir ao vídeo do Landerson Gomes, você deve estar familiarizado com os comandos de terminal do SDK Manager, então vamos lá (perceba que todos os comandos possuem DOIS sinais de menos -- no início e é ‘separado’ com um underline _ ):

- o primeiro passo será vc rodar o comando --list_installed, este comando deve retornar todos os recursos do SDK que está instalado no seu ambiente;

- Aqui vamos nos atentar ao “platform-tools”, este recurso é obrigatório para funcionamento do Android, então teoricamente ele deve aparecer no resultado da listagem do comando --list_installed;

- Atente-se à versão do “platform-tools”, precisamos manter a compatibilidade e baixar a versão do “build-tools” mais próxima. No nosso caso de exemplo, é a versão 35.0.2;

- O próximo comando a ser rodado será o --list, este comando irá listar TODOS os recursos do Android SDK, encontre a lista dos “build-tools” disponíveis e copie o nome e a versão assim como é listado

- O próximo comando é a instalação, rode --install build-tools;, substituindo version pela versão que você escolheu, no nosso exemplo, o comando seria: --install build-tools;35.0.0

A versão 35.0.0 é a mais próxima da versão do platform-tools do nosso exemplo.

Após a correta instalação do build-tools, agora você deve ser capaz de encontrar o arquivo “apksigner.bat” e está pronto para prosseguir para o tópico anterior [apksigner.bat]

[1] “Android SDK Manager: Configuração por linha de comando” https://www.youtube.com/watch?v=3jWe6G69VzM

Reply to this note

Please Login to reply.

Discussion

No replies yet.