How To Change versionCode in cordova / Ionic Apps For Android

In this post we will take a look at how you can set versionCode in you cordova / Ionic apps while building for android.

Before we take a look at how to set versionCode, let’s first understand what a versionCode is. versionCode is an integer number which is used to keep track of app versions. The grater the versionCode, the latest version of you app. This versionCode is not show to the user. This is just for internal tracking by the PlayStore. For a more detailed definition take a look at the Android docs here
.

The gratest value of the versionCode can be 2100000000.

You are required to increment the versionCode of your app every time you push a new update to you app. If you do not increment the versionCode then while uploading your app PlayStore will give you an error saying Your APK's version code needs to be higher than
.

You can set the versionCode in you config.xml
file using the widget tag as shown below.


Now let me tell you why I needed to write this post. It turns out that there is a bug in the build system of android-gradle which appends 8
to the version code that you have set. For example, you have set your app’s versionCode to 1
, but when you build your app using corova / Ionic the app will have the version code of 18
. As you can see that 8
is being appended. As the maximum number of versionCode can 2100000000, if 8
is appended each time you will be able to update your app only 9 times.

There are other solutions in different forums that tell you to change the andoridManifest.xml
file, some even ask you to change the gradle build file. I would stay away from all of these solutions as they are temporary. This is because andoridManifest.xml
and the gradle file are dynamically added and generated during compile time. Which means that things can change when you run the build command.

How to Solve Cordova / Ionic Appends 8 To versionCode?

Let us now get started with the solution. I will be mentioning the solution for both Corodva and Ionic.

For Cordova

We can use the following build command.

cordova build --release android -- --versionCode=3

Note that we are passing the versionCode
CLI parameter with the value of 3
.

For Ionic

Ionic nests the cordova command on level deep. So for Ionic we will use the following build command.

ionic cordova build android --release -- -- --versionCode=3

Note the extra --
in the command.

How To Check Cordova / Ionic versionCode?

You can check all the build info of the apk file using the aapt tool. AAPT (Android Asset Packaging Tool) is a tool that is a part of the android SDK build-tools.

You can run the aapt tool with the following command.

aapt dump badging .platformsandroidbuildoutputsapkandroid-release-unsigned.apk

This will give all the info about the apk. The output will look something as follows.

package: name='io.ionic.starter' versionCode='3' versi
onName='3.0.1' platformBuildVersionName='6.0-2704002'
sdkVersion:'16'
targetSdkVersion:'23'
uses-permission: name='android.permission.INTERNET'
application-label:'MyApp'
application-icon-120:'res/drawable-ldpi-v4/icon.png'
application-icon-160:'res/drawable-mdpi-v4/icon.png'
application-icon-240:'res/drawable-hdpi-v4/icon.png'
application-icon-320:'res/drawable-xhdpi-v4/icon.png'
application-icon-480:'res/drawable-xxhdpi-v4/icon.png'
application-icon-640:'res/drawable-xxxhdpi-v4/icon.png'
application: label='MyApp' icon='res/drawable-mdpi-v4/icon.png'
launchable-activity: name='io.ionic.starter.MainActivi
ty'  label='MyApp' icon=''
feature-group: label=''
  uses-feature: name='android.hardware.touchscreen'
  uses-implied-feature: name='android.hardware.touchscreen' reason='default feature for all apps'
main
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--'
densities: '120' '160' '240' '320' '480' '640'

This way you can check the versionCode of you release apk before uploading it to the PlayStore.

Conclusion

Setting the versionCode for cordova / Ionic has been an issue for quiet some time. Using the CLI parameter solves this. A thing to note is that the CLI parameter will override the value of versionCode set in the config.xml
file.

Leave Me Your Questions And Feedback

Getting your feedback inspires me the most so hit me up in the comments here or on the comments section on my YouTube Channel
or on twitter @pointDeveloper

稿源:pointDeveloper (源链) | 关于 | 阅读提示

本站遵循[CC BY-NC-SA 4.0]。如您有版权、意见投诉等问题,请通过eMail联系我们处理。
酷辣虫 » 移动开发 » How To Change versionCode in cordova / Ionic Apps For Android

喜欢 (0)or分享给?

专业 x 专注 x 聚合 x 分享 CC BY-NC-SA 4.0

使用声明 | 英豪名录