Tutorial de criação e asssinatura de um aplicativo pelo terminal com Apache Cordova para fazer upload na PlayStore.
cordova create appassinado br.com.appassinado AppAssinado
cd appassinado
cordova platform add android
cordova build android --release
keytool -genkey -v -keystore <keystoreName>.keystore -alias <Keystore AliasName> -keyalg <Key algorithm> -keysize <Key size> -validity <Key Validity in Days>
keytool -genkey -v -keystore appassinado.keystore -alias appassinado -keyalg RSA -keysize 2048 -validity 10000
keystore password? : xxxxxxx
What is your first and last name? : xxxxxx
What is the name of your organizational unit? : xxxxxxxx
What is the name of your organization? : xxxxxxxxx
What is the name of your City or Locality? : xxxxxxx
What is the name of your State or Province? : xxxxx
What is the two-letter country code for this unit? : xxx
Informe a senha da área de armazenamento de chaves: xxxxxxxxx
Informe novamente a nova senha: xxxxxxxxx
Qual é o seu nome e o seu sobrenome?
[Unknown]: App Assinado
Qual é o nome da sua unidade organizacional?
[Unknown]: App Assinado
Qual é o nome da sua empresa?
[Unknown]: App Assinado
Qual é o nome da sua Cidade ou Localidade?
[Unknown]: Ponta Grossa
Qual é o nome do seu Estado ou Município?
[Unknown]: Parana
Quais são as duas letras do código do país desta unidade?
[Unknown]: BR
CN=App Assinado, OU=App Assinado, O=App Assinado, L=Pont Grossa, ST=Parana, C=BR Está correto?
[não]: sim
Gerando o par de chaves RSA de 2.048 bit e o certificado autoassinado (SHA256withRSA) com uma validade de 10.000 dias
para: CN=App Assinado, OU=App Assinado, O=App Assinado, L=Ponta Grossa, ST=Parana, C=BR
Informar a senha da chave de <appassinado>
(RETURN se for igual à senha da área do armazenamento de chaves): xxxxxxxxx
Informe novamente a nova senha: xxxxxxxxx
[Armazenando appassinado.keystore]
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore <keystorename <Unsigned APK file> <Keystore Alias name>
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore appassinado.keystore platforms/android/build/outputs/apk/android-release-unsigned.apk appassinado
Enter KeyPhrase as 'xxxxxxxx'
/seu-caminho-para-o-zipalign/zipalign -v 4 /seu-caminho-para-o-apk-nao-assinado/android-release-unsigned.apk /seu-caminho-de-saida-para-o-apk-assinado/appassinado.apk
Podemos especificar um build.json com o armazenamento das chaves para rodar o debug e release mais facilmente
Alternativamente, você pode especificá-los em um arquivo de configuração de compilação (build.json) Usando o argumento --buildConfig para os mesmos comandos. Aqui está um exemplo de um arquivo de configuração que deve ser adicionado em seu projeto, eu particularmente adicionei dentro da minha pasta js.
{
"android": {
"debug": {
"keystore": "../../appassinado.keystore",
"storePassword": "123456789",
"alias": "appassinado",
"password": "123456789",
"keystoreType": ""
},
"release": {
"keystore": "../../appassinado.keystore",
"storePassword": "123456789",
"alias": "appassinado",
"password": "123456789",
"keystoreType": ""
}
}
}
cordova build android --release --buildConfig
ou
cordova build android --debug --buildConfig
Para mais informações de como configurar a assinatura do app em Apache Cordova - Assinando um aplicativo
Para mais informações de como configurar o Apache Cordova acesse a documentação Documentação Apache Cordova