Devlog

Tilo Mitra's avatar

Gerando APK pelo Cordova CLI

Depois de completar o artigo sobre gerar o projeto Xcode para IOS, agora chegou a vez de gerar o APK.
Se chegou até aqui, provavelmente já está com o ambiente todo configurado, projeto exportado, como foi orientado na primeira parte onde trato desde a exportação do projeto Cordova pelo Construct 2, até a preparação do ambiente.

A explicação de cada uma destas opções, foi feita na primeira parte deste artigo, aqui fiz a remoção das opções ios, como vou focar apenas no Android, não é necessário deixar elas marcadas.

Com o projeto exportado, esta será a estrutura das pastas. Os arquivos config.xml e config.json, são para as configurações do projeto, a pasta www é onde fica o seu jogo, estes são os arquivos padrão que o Construct 2 gera, nas últimas versões já preparado também para o Cordova CLI.

Clique aqui para ver a imagem do config.xml maior, que será muito importante para o melhor entendimendo dos problemas comuns na geração e manipulação de apk.

Farei uma explicação frisando apenas os locais onde necessitam de mudanças neste arquivo, para que não fique um documento muito extenso.
A segunda linha, é responsável pelas configurações iniciais do aplicativo, elas são exatamente as mesmas da propriedade do seu projeto do Construct 2, veja na imagem abaixo.

Com uma atenção muito especial para a id do projeto, no meu exemplo com.mycompany.teste, pois esta id é exatamente a id que vai aparecer na Google Play. A forma correta de preencher a id é colocar com.nomedoestudio.nomedojogo.

Uma alteração muito importante que já faço antes de qualquer outra, é adicionar o código da versão nesta mesma linha 2, costumo fazer desta forma android-versionCode="1" id="com.mycompany.teste" version="1.0.0.0", este código é o que a Google Play verifica toda vez que for enviar uma atualização, sendo necessário uma superior, no exemplo aqui eu estou enviando a android-versionCode="1", se eu precisar atualizar o projeto, colocarei uma versão superior android-versionCode="2", desta forma não terá problemas com atualizações.

A última mudança desta linha é apenas version="1.0.0.0", porém será necessária somente quando precisar atualizar seu jogo.

As linhas 3, 4 e 5, são apenas com as informações do projeto, neste caso já deixe preenchidas no próprio Construct2 antes de exportar para Cordova, caso não tenha feito, pode alterar.
As linhas 7 e 8, são os ícones, o Construct 2 já direciona os ícones da própria ferramenta, que ficam na pasta Files/icons, veja na imagem abaixo, sendo possível alterar facilmente pela própria ferramenta.
Adicionarei futuramente um método de usar ícones fora desta pasta, além da imagem da splash, caso queira colocar no seu projeto.

A linha 10, é a plataforma alvo, neste caso a versão alvo do Android para o projeto, a Scirra recomenda para usarmos como mínimo o SDK 21, que é o Android 5.0, consulte a documentação oficial da Google sobre o tema.

Estas são as principais linhas que devemos ter mais atenção, as demais são geradas pelo Construct 2 ou são modificadas pelo próprio Cordova via linha de comando, que veremos mais adiante.
Desta forma concluimos a explicação dos principais elementos do config.xml, agora podemos começar a preparar o projeto.

Algo que costumo fazer, é separar uma pasta para colocar todos os projetos cordova, será onde vou colocar este projeto.

Como a navegação é toda feita por linhas de comando, vou explicar alguns comandos básicos para Windows.

cls Limpa a tela.
cd este comando sozinho não faz nada, ele precisa ser combinado. Exemplo.
cd nomedapasta o nomedapasta seria a pasta onde o seu projeto está.
cd .. serve para sair de uma pasta, um nível acima.

Basicamente estes comandos são suficientes para a navegação.

É importante que entenda sobre navegação via linha de comando no Windows, pelo menos para poder encontrar seu projeto como na imagem acima, eu disse que costumo organizar tudo em apenas 1 diretório, que também facilita a geração build de qualquer projeto rapidamente.

Se entender sobre arquivos de lote "batch", crie um e coloque apenas este comando start cmd, salve o arquivo com a extensão .bat, depois é só colocar este arquivo na pasta do seu projeto, executar ele que você já vai estar dentro do seu diretório do projeto.
Não colocarei nenhum arquivo.bat para download, pois os programas anti-vírus costumam reconhecer eles como potenciais de infecção, já que são executáveis, porém se os criar no seu computador, não terá problemas.

Agora que navegou até a pasta do seu projeto, podemos adicionar a plataforma Android pelo Cordova CLI. Digite o comando.

cordova platform add android
Uma observação muito importante é que o comando acima, vai adicionar no projeto a versão mais atualizada que tem instalada no computador, caso queira uma versão específica, é necessário informar a versão também na linha de comando, por exemplo.

cordova platform add android@6.4.3
Aguarde a instalação da plataforma Android pelo Cordova, todos os plugins que estão listados no config.xml, serão instalados. Futuramente atualizarei sobre este ponto., além da instalação de plugins para ads e Google Play Games.

Como são diversas linhas no processo de instalação da plataforma com o plugin, clique aqui para a imagem do processo completo.

Após a instalação da plataforma e plugins, foram criadas algumas pastas e arquivos adicionais de configuração, não vou tratar deles aqui, pois não é necessário.
Agora vamos propriamente gerar o apk em modo debug com o comando abaixo.

cordova build
Caso o projeto tenha outra plataforma, mande gerar apenas a versão Android, senão o Cordova entende que quer gerar a build de todas as plataformas instaladas.

cordova build android
Executado o comando, a primeira vez gerada pode demorar um pouco, pois depende da configuração do computador além da quantidade de plugins que que estão instalados no projeto.

Se o seu ambiente estiver corretamente configurado, vai aparecer BUILD SUCCESSFULL, indicando que o apk foi gerado corretamente, além do diretório onde se encontra o APK.
Agora é possível testar seu aplicativo no seu aparelho ou algum emulador "se desejar", desde que seu sistema esteja configurado para instalar aplicativos de fontes desconhecidas, se esta não for a mesma versão do seu Android, uma pesquisa no google com estes termos te ajuda. Como instalar aplicativos de fontes desconhecidas Android , seguido da sua versão do Android.

Exemplo
Como instalar aplicativos de fontes desconhecidas Android 7

Agora pode testar seu aplicativo.
Se não precisar de fazer nenhuma alteração no seu jogo, "ads, google play services", pode gerara build não assinada, use o comando.

cordova build --release

Limpando e compilando o projeto

cordova clean android
É necessário informar a plataforma que deseja limpar, apenas se o seu projeto possuir mais de 1 instalada, desta forma a pasta build "até o Cordova 6" ou app para Cordova 7.

Como podem ver, demorou apenas 30 segundos para gerar a build não assinada, precisamos assinar antes de enviar para a Google Play, pois esta só aceita aplicativos assinados.

Vamos criar uma keystore, se já possuir uma, pode pular esta parte.
Existem diversos métodos para se criar keystore, veja a documentação oficial da Google Sobre o tema, como estou fazendo tudo por linha de comando, também prefiro este método para a criação da Keystore, quando necessário. As instruções também estão no documento oficial.

Agora para assinar o aplicativo, eu criei um pequeno script, que facilita muito.

jarsigner -sigalg SHA1withRSA -digestalg SHA1 -keystore Z:\FabricaDeAPK/cert/nomeDaSuaKeystore.keystore -storepass "suaSenhaDaKeystore" nomeDoAplicativoNaoAssinado.apk suaAlias
pause
zipalign -f -v 4 nomeDoAplicativoNaoAssinado.apk nomeDoSeuAplicativoAposAssinar.apk
del nomeDoAplicativoNaoAssinado.apk
pause
                                

Pegue o Script acima e salve em um arquivo .bat, desta forma ele se torna um executável no ambiente Windows.

Na primeira linha, na parte Z:\FabricaDeAPK/cert/ é a localização no meu disco da keystore, tenha muita atenção, se o caminho estiver errado, não será possível assinar o aplicativo.
Se está estranhando por ser unidade Z:, é por que eu utilizo este ambiente configurado também em uma máquina virtual, onde eu mapeei uma pasta compartilhada na rede, desta forma tenho uma grande agilidade para gerar builds, encontrar os arquivos que preciso, além de não ter risco de dar algum problema no meu sistema principal.

Após gerar o seu apk não assinado, vai na pasta onde indica a compilação, pegue o arquivo.apk e coloque na mesma pasta que colocou o script, além do Zipalign.exe que será necessário para alinhar o aplicativo.
Você pode apenas renomear seu apk para nomeDoAplicativoNaoAssinado e rodar o script ou editar da forma que achar melhor.

Repare que já coloco a senha da keystore, o alias e também estou alinhando o aplicativo após assinar, desta forma eu não preciso apenas apertar Enter quando aparecer pause na tela, o pause foi colocado pois o script não espera terminar de assinar e já tenta alinhar, o pause foi colocado justamente para que cada processo seja feito na ordem necessária, também estou deletando o arquivo original del, mantendo apenas o arquivo já assinado.

Pronto, agora tem um APK gerado pelo Cordova CLI e assinado, pronto para colocar na Google Play.

Como mensionei acima, não fiz um vídeo, pois pretendo atualizar este artigo, na medida que for necessário, quem quiser pegar este conteúdo e criar um vídeo, pode ficar a vontade.
Escreverei um artigo separado para o tratamernto de plugins, pelo menos os principais, "ads", "Google Play Services" etc. Se ainda resta alguma dúvida, pode deixar nos comentários de onde eu postar este link.

Obs: Uma das grandes vantagens de se trabalhar com Cordova CLI é que a plataforma trabalha em 2 camadas, primeiro é a plataforma, onde adicionamos os plugins, outra é o próprio aplicativo, desta forma quando queremos por exemplo apenas atualizar algo no jogo, precisamos apenas substutuir os arquivos da pasta WWW, recompilar Build, o processo demora poucos segundos.

Voltar