I'm trying to sign the unsigned APK. I followed this link.
My steps:
$ cordova build --release android
(success)$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name - keyalg RSA -keysize 2048 -validity 10000
(success)$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name
(got problem)The problem is:
jarsigner: unable to open jar file: HelloWorld-release-unsigned.apk
Then i followed this link.
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -my-release-key.keystore F:\mobile\moto\whatever_the_path_is_to_your_apk_file\HelloCordova-release-unsigned.apk alias_name
(got problem)the problem is:
Illegal option: -my-release-key.keystore
Can anyone help me. Thank you.
Sign an APK You can include this information in two ways: Specify a KeyStore file using the --ks option. Specify the private key file and certificate file separately using the --key and --cert options, respectively. The private key file must use the PKCS #8 format, and the certificate file must use the X.
Unsigned Apk, as the name suggests it means it is not signed by any Keystore. A Keystore is basically a binary file that contains a set of private keys. Every App that we install using the Google Play App Store needs to be signed with a Keystore.
Apps that are not listed in the Google Play app store are called Unsigned Android Apps. If you need to install such an app for your Android device, you can still do so, but you'll need to enable settings inside Android that enable you to install unsigned third-party apps.
You cannot upload to Google Store a not signed and not aligend APK. Ask your developer to give you the signed and aligend APK. Or you can ask them to provide the key to you so you can sign and align it yourself using that key .
You need to remove the -
in front of the keystore
file and add the flag -keystore
:
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore F:\mobile\moto\whatever_the_path_is_to_your_apk_file\HelloCordova-release-unsigned.apk alias_name
Generally I use these commands to generate a release build apk
that I will publish in the Google Play Store:
cd ~/Projects/myappname/
cordova build android --release
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore certificates/myappname-cert.keystore -storepass myappname -keypass myappname platforms/android/ant-build/CordovaApp-release-unsigned.apk myappname
jarsigner -verify -verbose -certs platforms/android/ant-build/CordovaApp-release-unsigned.apk
~/android-sdk-macosx/build-tools/21.1.2/zipalign -v 4 platforms/android/ant-build/CordovaApp-release-unsigned.apk releases/android/myappname1.0.0.apk
Note that I created the dir. certificates
with the .keystore certificate, and the dir. releases/android
where I save all signed apk releases.
To generate a new keystore
file with a new password
:
keytool -genkey -v -keystore certificates/my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
Steps to sign Corodva apk using keytool, jarsigner and zipalign are:
keytool -genkey -v -keystore android.keystore -alias android_app -keyalg RSA -keysize 2048 -validity 10000
keytool -importkeystore -srckeystore android.keystore -destkeystore android.keystore -deststoretype pkcs12
It will create two files in Project_root_dir as android.keystore (with pkcs12) and android.keystore.old (without pkcs12)
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore android.keystore app-release-unsigned.apk android_app
First time you'll get below error as:
jarsigner: unable to open jar file: app-release-unsigned.apk
Then you just need to move .apk file from
/Project_root_dir/platforms/android/app/build/outputs/apk/release/app-release unsigned.apk
in to Project_root_dir/
Then again run the jarsigner command above, it will sign apk successfully.
zipalign -v 4 app-release-unsigned.apk app-release.apk
Your apk is signed successfully, you can publish it in play store.
I hope this will help you.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With