Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Como exportar o apk

Sérgio, foi muito bom o curso. Obrigado. Só senti falta do finalmente, de como exportar o apk, para instalar em outros dispositivos e publicar. Valeu

6 respostas

Olá, jenipapos! Na primeira aula, o Sérgio mostra como usar o site da Adobe Phonegap para executar o aplicativo no celular utilizando um leitor de QR-Code.

Para fazer a publicação para as lojas de aplicativos, você precisa baixar o aplicativo compilado usando os botões iOS, Android e WP que podemos ver na imagem a seguir:

Botões para baixar os aplicativos compilados

Depois de baixar, o processo para cada uma das lojas é diferente, então não dá pra mostrar em um único curso. O passo inicial é criar uma conta de desenvolvedor na plataforma na qual quer publicar o aplicativo, depois lá dentro existem ajudantes que podem te guiar para fazer a publicação com facilidade!

Oi Marco Essa parte do Phonegap eu entendi. Mas vimos no curso das diversas limitações. Fizemos apenas o cenourapp com ele. Depois, para o garçonapp o projeto foi feito todo em Cordova.

Minha pergunta específica foi como exportar o apk pelo Cordova.

Ou o garconapp também tem que passar pelo Phonegap?

Eu tinha entendido que não, que o Phonegap tinha sido só para o cenourapp.

O cordova não tem um comando para exportar o apk? Para empacotar meus projetos cordova tenho necessariamente que usar o Phonegap todas as vezes?

jenipapos, desculpe se entendi errado. Fiz uma busca no google e encontrei a documentação do Cordova, que explica como fazer o deploy pela linha de comando.

Encontrei também esse post do StackOverflow [3] que explica um pouco mais passo a passo, mas tenho a impressão de que é para uma versão um pouco mais antiga.

Veja o que mais se adequa ao seu caso! Espero que consiga fazer o pacote com sucesso, se conseguir e for mais complicado do que parece poste aqui sua solução! Mas caso negativo, dê mais informações sobre que sistema e versão está usando e tentarei fazer o processo inteiro eu mesmo para criar um pequeno tutorial pra você. =)

Links:

[1]https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#signing-an-app

[2]https://cordova.apache.org/docs/en/latest/guide/platforms/ios/index.html#signing-an-app

[3]http://stackoverflow.com/questions/26449512/how-to-create-signed-apk-file-using-cordova-command-line-interface

solução!

Pra gerar o apk apenas é bem simples, só fazer:

cordova build android

Ele faz isso quando executamos com run inclusive. Mas se fizer o build ele ja gera pra vc.

Esse apk gerado pode ser usado em qualquer dispositivo com a opção de instalar fora da loja habilitada. Para publicação na Play Store, aí já é mais complicado.

Valeu Marco Valeu Sérgio é isso mesmo. Ele gerou o android-debug.apk e o android-debug-unaligned.apk

Quando você fala que pra publicar na loja é mais complicado se refere a tirar o debug e obter a assinatura? Ou tem algo mais? Preciso saber esses próximos passos. Mesmo que não possa me explicar tudo, me diga ao menos o caminho das pedras que vou pesquisar. Quais etapas ainda preciso cumprir pra publicar o app android na loja? Valeu

Cara, escrevi um pouco mais detalhado sobre isso no meu livro. Não conta pra ninguém, mas copiei e colei o trecho :)


Publicação da Play Store

Criação da conta de Developer

Você precisa ter uma Google Account. Logado nela, vá a:

https://play.google.com/apps/publish/signup/.

Preencha o cadastro e pague a taxa de $25 dólares. É preciso um cartão de crédito internacional para isso.

Preparação da App

No terminal, gere o apk final com:

cordova build android --release

Talvez você receba um erro do tipo MissingTranslation. Nesse caso, crie um arquivo platforms/android/build-extras.gradle com o conteúdo a seguir, e exporte de novo:

android {
  lintOptions { disable 'MissingTranslation', 'ExtraTranslation' }
}

O apk será gerado em:

platforms/android/build/outputs/apk/android-release-unsigned.apk

Assinando a App

Se você nunca publicou nada, vai precisar de um par de chaves para assinar sua App digitalmente. Vamos gerar essas chaves primeiro.

Para isso, vamos usar o utilitário keytool no terminal. Ele veio instalado junto com o Java JDK, então deve estar disponível para você. Execute em um único comando:

keytool -genkey -v -keystore chave-android.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Ele vai pedir uma senha para desbloquear a chave.

Importantíssimo

Guarde essas chaves com sua vida. Você não pode perder esses arquivos; se perder não consegue mais atualizar a App. E se caírem em mão erradas, podem ser usadas para coisas maliciosas em seu nome.

Para assinar a App, usamos o jarsigner, que também veio no JDK. Ele recebe o arquivo da chave e o arquivo apk que geramos antes. Execute em um único comando:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore chave-android.keystore android-release-unsigned.apk alias_name

O último passo é rodar o utilitátio zipalign que vem no Android SDK. Ele ajeita algumas coisas no arquivo antes da publicação.

zipalign -v 4 android-release-unsigned.apk SoDeCenouraFinal.apk

Caso não esteja no seu PATH, o zipalign pode ser encontrado na pasta do Android SDK em build-tools/VERSAO/zipalign.

É possível fazer a exportação e assinatura do apk pelo Android Studio se você o tiver aberto. A complexidade é a mesma, mas você faz com uma interface visual.

Consulte: http://developer.android.com/intl/pt-br/tools/publishing/app-signing.html#studio.

Subindo a App na Play Store

Feita nossa conta de developer e gerado o apk assinado, podemos iniciar a publicação. Acesse: https://play.google.com/apps/publish/.

Crie uma nova App, escolha a língua, dê um nome e faça upload do APK. Em seguida, vá seguindo as instruções para incluir as outras informações. Ele pede descrição, screenshots, classificação etária e outros dados. Não coloquei no livro, pois essas opções mudam, mas é fácil de acompanhar pelo passo a passo na Store.

No final, o botão Publicar App fica disponível. Então, é só clicar. Depois de algumas horas, você já deve achar sua App na Store.