solution
-
generate a private key using keytool
$ keytool -genkeypair -dname "CN=hqlgree2, OU=DA, O=ICSS, L=BeiJing, ST=HaiDian, C=CN" -alias epb -keyalg RSA -keypass password_of_keypass -keystore epb.keystore -storepass password_of_storepass -validity 365 -
compile your app in release mode to obtain an unsigned apk
-
sign your app with your private key using jarsigner
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -tsa http://timestamp.digicert.com -keystore epb.keystore -storepass password_of_storepass epb.apk epb -
verify that your apk is signed
$ jarsigner -verify -verbose -certs epb.apk -
align the final apk package using zipalign
$ zipalign -v 4 epb.apk epb_align.apk
refer
| tool | description | |
|---|---|---|
| keytool | –> | Manages a keystore (database) of cryptographic keys, X.509 certificate chains, and trusted certificates. |
| jarsigner | –> | Generates signatures for Java ARchive (JAR) files, and verifies the signatures of signed JAR files. |
| zipalign | –> | an archive alignment tool that provides important optimization to Android application (.apk) files. |