Eu fiz um aplicativo de exemplo chamado checkStatus
. Agora, quero criar um arquivo APK assinado. Para que eu possa instalá-lo em diferentes dispositivos para os meus testes.
Para isso, pesquisei no Google e encontrei esta documentação .
Conforme o documento, mudei para o diretório do meu projeto e executei o seguinte comando:
keytool -genkey -v -keystore key-name.keystore -alias alias-name -keyalg RSA -keysize 2048 -validity 10000
Depois de executar o comando acima, recebi um arquivo chamado key-name.keystore
at projectRoot/key-name.keystore
.
E então eu colei esse arquivo em projectRoot/platforms/android/key-name.keystore
.
Depois disso, criei um arquivo chamado ant.properties
e o salvei projectRoot/platforms/android
.
Eu escrevi o seguinte código dentro do arquivo:
key.store=projectRoot/key-name.keystore
key.alias=myApp
Depois disso, executei o seguinte comando para liberar
Cordova builds android --release
Está lançando o seguinte erro:
/home/projectRoot/platforms/android/cordova/node_modules/q/q.js:126
throw e;
^
Error code 1 for command: ant with args: release,-f,/home/projectRoot/platforms/android/build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: /home/projectRoot/platforms/android/cordova/build: Command failed with exit code 8
at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.EventEmitter.emit (events.js:98:17)
at maybeClose (child_process.js:753:16)
at Process.ChildProcess._handle.onexit (child_process.js:820:5)
Então, desta vez, modifiquei o key.store
valor no ant.properties
arquivo da seguinte maneira.
key.store=/home/projectRoot/platforms/android/key-name.keystore
Mais uma vez, eu corri o cordova build android --release
comando. Lança o mesmo erro.
Alguém pode me dizer o que eu fiz de errado?
Respostas:
Passo 1:
adicione o
--save
para remover o plug-in do diretórioconfig.xml
arquivo.Passo 2:
Para gerar uma versão compilada para Android, primeiro precisamos fazer uma pequena alteração no
AndroidManifest.xml
arquivo encontrado em plataformas / android. Edite o arquivo e altere a linha:e mude
android:debuggable
parafalse
:A partir do cordova 6.2.0, remova completamente a etiqueta android: debuggable. Aqui está a explicação de cordova:
Se, por outro lado, você especificar um valor específico no arquivo de manifesto, as ferramentas sempre o usarão. Isso pode levar à publicação acidental de seu aplicativo com informações de depuração.
Etapa 3:
Agora podemos dizer ao cordova para gerar nosso build de lançamento:
Em seguida, podemos encontrar nosso arquivo APK não assinado em
platforms/android/ant-build
. No nosso exemplo, o arquivo foiplatforms/android/ant-build/Example-release-unsigned.apk
Passo 4:
Nota: Temos o nosso keystore
keystoreNAME-mobileapps.keystore
neste repositório do Git. Se você deseja criar outro, siga as etapas a seguir.Geração de chaves:
Sintaxe:
Egs:
Em seguida, o armazenamento de chaves foi gerado com o nome como NAME-mobileapps.keystore
Etapa 5:
Coloque o keystore gerado em
versão antiga cordova
Nova versão cordova
Para assinar o APK não assinado, execute a ferramenta jarsigner, que também está incluída no JDK:
Sintaxe:
Egs:
OU
Isso assina o apk no lugar.
Etapa 6:
Por fim, precisamos executar a ferramenta de alinhamento zip para otimizar o APK:
OU
OU
Agora, temos nosso binário de lançamento final chamado example.apk e podemos lançá-lo na Google Play Store.
fonte
-tsa timestamp.digicert.com
lançou uma NullPointerException para mim.-tsa http://timestamp.digicert.com
parece corrigi-lo #Uma atualização para @malcubierre para Cordova 4 (e posterior) -
Crie um arquivo chamado
release-signing.properties
e coloqueAPPFOLDER\platforms\android
pastaConteúdo do arquivo: editar após = para todos, exceto a segunda linha
Então este comando deve criar uma versão de lançamento:
fonte
build-extras.gradle
arquivo. Doc cordova relevante aqui .Na documentação atual , podemos especificar um build.json com o keystore:
E então, execute o comando com --buildConfig argumente, desta maneira:
fonte
Passo 1:
Vá para
cordova\platforms\android
ant criar umant.properties
arquivo chamado file com as informações do arquivo keystore (esse keystore pode ser gerado a partir do seu Android SDK, estúdio favorito ...):Passo 2:
Vá para o caminho cordova e execute:
Nota: Você será solicitado a solicitar seu keystore e senha de chave
Um YourApp-release.apk aparecerá em
\cordova\platforms\android\ant-build
fonte
No cordova 6.2.0 , ele tem uma maneira fácil de criar a versão compilada. consulte outras etapas aqui Etapas 1, 2 e 4
fonte
The system cannot find the file specified
usar o Cordova 6.2.0cordova build android --release -- --keystore="C:\release.keystore" --storePassword=****** --alias=mr5
"
(aspas duplas), ela começou a ser executada. Acho que Cordova tem um problema sobre a análise de caracteres especiais.No Mac (osx), gerei dois arquivos .sh, um para a primeira publicação e outro para atualização:
E para atualizar seu aplicativo:
Supondo que você esteja na sua pasta pessoal ou em uma pasta no topo das pastas dos aplicativos. Certifique-se de definir corretamente o chmod para usar este script. Então :
Seu apk assinado estará na pasta Your App / plataformas / android / build / outputs / apk / as SignedApk.apk Certifique-se de usar o alias de chave e a senha corretos definidos com o primeiro script
fonte
Crie o arquivo APK do cordova release no cmd.
CAMINHO DO ARQUIVO DE ARMAZENAMENTO DE CHAVES : caminho do arquivo de armazenamento de chaves (F: /cordova/myApp/xxxxx.jks)
SENHA DA LOJA PRINCIPAL : xxxxx
ALIAS DA CHAVE DA LOJA : xxxxx
SENHA DA ALIAS DA LOJA-CHAVE : xxxxx
CAMINHO DO zipalign.exe : caminho do arquivo zipalign.exe (C: \ Users \ xxxx \ AppData \ Local \ Android \ sdk \ build-tools \ 25.0.2 \ zipalign)
ANDROID NÃO ASSINADO NOME DO APK : android-release-unsigned.apk
ANDROID RELEASE NOME DO APK : android-release.apk
Execute as etapas abaixo no cmd (execute como administrador)
fonte
fonte
Primeiro, verifique o código e o nome da versão, se você estiver atualizando seu aplicativo. E verifique se você possui um keystore anterior.
Se você estiver atualizando o aplicativo, siga a etapa 1,3,4.
Passo 1:
Vá para o seu projeto cordova para gerar nossa versão:
Em seguida, podemos encontrar nosso arquivo APK não assinado em plataformas / android / ant-build. No nosso exemplo, o arquivo foi
se você usou o form-build
OU
se você usou gradle-build
Passo 2:
Geração de chaves:
Sintaxe:
Se o comando keytool não reconhecer, execute esta etapa
Verifique se o diretório em que o executável do keytool está está no seu caminho. (Por exemplo, na minha máquina com Windows 7, está em C: \ Arquivos de Programas (x86) \ Java \ jre6 \ bin.)
Exemplo:
Em seguida, o armazenamento de chaves foi gerado com o nome como NAME-mobileapps.keystore
Etapa 3:
Coloque o keystore gerado em D: \ projetos \ Phonegap \ Exemplo \ plataformas \ android \ ant-build
Para assinar o APK não assinado, execute a ferramenta jarsigner, que também está incluída no JDK:
Sintaxe:
Se não reconectar, siga estas etapas
(1) Clique com o botão direito do mouse em "Este PC"> clique com o botão direito em Propriedades> Configurações avançadas do sistema> Variáveis de ambiente> selecione PATH e depois EDIT.
(2) Adicione o caminho da pasta jdk bin às variáveis de ambiente, ele deve se parecer com o seguinte:
"C: \ Arquivos de Programas \ Java \ jdk1.8.0_40 \ bin".
Exemplo:
Isso assina o apk no lugar.
Passo 4:
Por fim, precisamos executar a ferramenta de alinhamento zip para otimizar o APK:
se zipalign não reconhecer,
(1) vá para o caminho do sdk do Android e encontre o zipalign geralmente em android-sdk \ build-tools \ 23.0.3
(2) Copie e cole o arquivo zipalign na pasta apk de liberação do arquivo geralmente no caminho abaixo
yourproject / plataformas / android / ant-build / Example-release-unsigned.apk
OU
Agora, temos nosso binário de lançamento final chamado example.apk e podemos lançá-lo na Google Play Store.
fonte
Para Windows, eu criei um
build.cmd
arquivo:(substitua o caminho e alias do keystore)
Para Cordova:
E para Ionic:
Salve-o no diretório do ptoject, clique duas vezes ou abra-o com o cmd.
fonte