AndroidのversionNameを自動管理する

この記事はQiitaに投稿した記事と同じ内容である。 Qiitaからいつ退会してもいいように、自分のブログにもコピーしておく

問題

apkを配布するために、app/build.gradle のversionNameのみをインクリメントしてプルリクエストを出す。

これはなかなか面倒だし、手間だなと思った。

versionName なんて修正するまでもなく、自動で加算されてほしい。

どうしたか?

そこでversionNameに日時にしてはどうだろう?

イメージはこんな感じ

static def getCustomVersionCode() {
    return new Date().format('yyMMddHHmm').toInteger()
}

android {
    compileSdkVersion 29
    defaultConfig {
        applicationId "com.xxxx"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0-${getCustomVersionCode()}" // <= yyMMddHHmm が追加される

これをビルドしたapkの versionName はこうなる

android:versionName="1.0-2004270921"

これでversionNameを毎回修正する必要なくなった。

デメリットは、エラーが発生したときにどのバージョンなのかを特定する必要がある。
エラー情報にversionNameが含まれていれば特定できるんだろうけど。

使用コード

https://github.com/ikemura23/Android-Kotlin-Lab/blob/master/app/build.gradle