Como posso construir um aplicativo Android localmente usando a CLI Phonegap 3.x, pronto para lançar? Eu verifico a pasta bin gerada dentro do diretório plataformas / android do projeto e só contém APKs .debug.
A propósito, eu uso este comando: phonegap local build android
fonte
<application android:debuggable="true"...
eu precisava mudar para<application android:debuggable="false"
/path/to/your/project/platforms/android/ant-build
No PhoneGap 3.4.0 você pode ligar para:
Se você configurou o arquivo 'ant.properties' no diretório 'plataformas / android' como o seguinte:
Em seguida, será solicitada a senha do keystore e o arquivo de saída (myapp-release.apk) termina no diretório 'platform / android / ant-build' já assinado e alinhado e pronto para implantar.
fonte
ant.properties
emplatforms/android
e caiu apenas essas duas propriedades para ele. Funciona perfeitamente, obrigado!In cordova 6.2.0
Resposta anterior:
De acordo com cordova 5.0.0
e executar a
./build --release --buildConfig build.json
partir do diretórioplatforms/android/cordova/
a localização do arquivo de armazenamento de chave é relativa a
platforms/android/cordova/
, portanto, no.keystore
arquivo de configuração acima ebuild.json
estão no mesmo diretório.keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
fonte
Seguindo até @ steven-anderson, você também pode configurar senhas dentro do ant.properties, para que o processo possa ser totalmente automatizado
então, se você colocar em platform \ android \ ant.properties o seguinte
fonte
só fiquei pensando muito porque tive o mesmo problema, mas na minha instalação o comando "cordova" nunca estava disponível e "phone gap build android --release" apenas ignorou a plataforma / android / ant.properties.
então, olhando dentro do meu filtro de plataforma, encontrei uma pasta chamada "cordova" e dentro dela havia um binário "build" que aceitava o argumento --release, ele me pediu os chaveiros e terminei com um assinado e pronto para produção APK.
isso nunca foi documentado em nenhuma parte do site de falha de telefone e, francamente, agora eu meio que odeio o fone de ouvido :( era para tornar as coisas mais fáceis, mas tudo era apenas complicado :(
fonte
Essas etapas funcionariam para Cordova, PhoneGap ou Ionic. A única diferença seria, onde quer que uma chamada
cordova
seja feita, substitua porphonegap
ouionic
, para o seu cenário específico.Depois de concluir o desenvolvimento e estiver pronto para implantar, siga estas etapas:
Abra uma janela de linha de comando (Terminal no macOS e Linux OU Prompt de comando no Windows).
Vá até o / caminho / para / seu / projeto /, que chamaríamos de raiz do projeto.
Enquanto estiver na raiz do projeto, remova o plug-in "Console" do seu conjunto de plug-ins.
O comando é:
cordova plugin rm cordova-plugin-console
Ainda na raiz do projeto, use o comando cordova build para criar um APK para distribuição de lançamento.
O comando é:
cordova build --release android
O processo acima cria um arquivo chamado
android-release-unsigned.apk
na pastaProjectRoot/platforms/android/build/outputs/apk/
Assine e alinhe o APK usando as instruções em https://developer.android.com/studio/publish/app-signing.html#signing-manually
No final desta etapa, o APK que você obteve pode ser enviado para a Play Store .
Observação: como novato ou iniciante, a última etapa pode ser um pouco confusa para mim. Alguém pode ter alguns problemas e pode ter algumas perguntas sobre o que são esses comandos e onde encontrá-los.
T1. O que são jarsigner e keytool ?
Resposta: As instruções do Android App Signing dizem especificamente sobre o que jarsigner e keytool são, MAS não dizem onde encontrá-los se você encontrar um 'erro de comando não encontrado' na janela da linha de comando.
Portanto, se você tiver o Java Development Kit (JDK) adicionado à sua variável PATH , basta executar os comandos como no Guia. MAS, se você não os tiver em seu PATH, você sempre pode acessá-los da pasta bin da instalação do JDK.
2º trimestre. Onde está zipalign ?
Resposta: Existe uma grande probabilidade de não encontrar o comando zipalign e receber o 'erro de comando não encontrado'. Você provavelmente estaria pesquisando zipalign no Google e onde encontrá-lo?
O utilitário zipalign está presente na pasta de instalação do Android SDK. No macOS, o local padrão é
user-name/Library/Android/sdk/
,. Se você cabeça para a pasta que você iria encontrar um monte de outras pastas, comodocs
,platform-tools
,build-tools
,tools
,add-ons
...Abra a
build-tools
pasta.cd build-tools
. Aqui, haveria uma série de pastas que são versionadas de acordo com a cadeia de ferramentas de construção que você está usando no Android SDK Manager. ZipAlignestá disponível em cada uma dessas pastas. Eu, pessoalmente, escolho a pasta com a versão mais recente. Abra qualquer.No macOS ou Linux, pode ser necessário usar em
./zipalign
em vez de simplesmente digitarzipalign
conforme a documentação menciona. No Windows,zipalign
é bom o suficiente.fonte
Eu fiz isso funcionar copiando e colando o aplicativo assinado no mesmo diretório que o zipalign. Parece que o aapt.exe não conseguiu encontrar o arquivo de origem, mesmo com o caminho fornecido. ou seja, isso não funcionou zipalign -f -v 4 C: ... \ CordovaApp-release-unsigned.apk C: ... \ destination.apk atingiu aapt.exeCordovaApp-release-unsigned.apk, congelou e ao clicar em return 'aapt.exeCordovaApp-release-unsigned.apk' não é reconhecido como um comando interno ou externo, programa operável ou arquivo em lote. E isso fez zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
fonte
Eu sei que esta pergunta é sobre o Phonegap 3.X especificamente, mas apenas para referência, qualquer versão do Phonegap acima da 4.0.0 usa Gradle em vez do Ant para construir por padrão. Para usar o Ant em vez do Gradle, você pode adicioná-lo ao seu config.xml:
Ao usar o Gradle, as informações de assinatura do keystore agora precisam ir para um novo local ( conforme descrito nesta postagem ). Crie um novo arquivo chamado ' release-signing.properties ' na mesma pasta do arquivo "build.gradle" e coloque dentro do seguinte conteúdo:
fonte
Você pode tentar este comando, ele deve construir e executar o aplicativo (então .apk deve ser criado):
phonegap local run android
fonte