This will generate a release build based on the settings in your
config.xml
. Your Ionic app will have preset default values in this file, but if you need to customize how your app is built, you can edit this file to fit your preferences. Check out
the config.xml file documentation for more information.
Next, we can find our unsigned APK file in platforms/android/build/outputs/apk
. In our example, the file was platforms/android/build/outputs/apk/HelloWorld-release-unsigned.apk
. Now, we need to sign the unsigned APK and run an alignment utility on it to optimize it and prepare it for the app store. If you already have a signing key, skip these steps and use that one instead.
Let’s generate our private key using the
keytool
command that comes with the JDK. If this tool isn’t found, refer to the
installation guide:
$ keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
You’ll first be prompted to create a password for the keystore. Then, answer the rest of the nice tools’s questions and when it’s all done, you should have a file called my-release-key.keystore
created in the current directory.
Note: Make sure to save this file somewhere safe, if you lose it you won’t be able to submit updates to your app!
To sign the unsigned APK, run the jarsigner
tool which is also included in the JDK:
$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore HelloWorld-release-unsigned.apk alias_name
This signs the apk in place. Finally, we need to run the zip align tool to optimize the APK. The zipalign
tool can be found in /path/to/Android/sdk/build-tools/VERSION/zipalign
. For example, on OS X with Android Studio installed, zipalign
is in ~/Library/Android/sdk/build-tools/VERSION/zipalign
:
$ zipalign -v 4 HelloWorld-release-unsigned.apk HelloWorld.apk
Now we have our final release binary called HelloWorld.apk
and we can release this on the Google Play Store for all the world to enjoy!
(There are a few other ways to sign APKs. Refer to the official Android App Signing documentation for more information.)
keytool -genkey -v -keystore acharyasri-key.keystore -alias acharyasri -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore acharyasri-key.keystore platforms/android/build/outputs/apk/android-release-unsigned.apk acharyasri
zipalign -v 4 E:/MobileApps/aacharya/android/build/outputs/apk/android-release-unsigned.apk Acharyasri.apk
Google Play Store
Now that we have our release APK ready for the Google Play Store, we can create a Play Store listing and upload our APK.