1. ホーム
  2. android

Android GradleでversionCodeを自動インクリメントする方法

2023-09-20 02:42:17

質問

私はGradleに基づいた新しいAndroidビルドシステムを実験しており、私はそれでversionCodeを自動増加させる最良の方法は何かと考えています。私は 2 つのオプションについて考えています。

  1. versionCode ファイルを作成し、そこから番号を読み取り、それを増加させ、ファイルに書き戻す。
  2. AndroidManifest.xml を解析し、そこから versionCode を読み取り、増加させて AndroidManifest.xml に書き戻します。

もっと簡単で適切な解決策はないでしょうか。

どなたか、上記の選択肢をお使いになった方で、教えていただける方はいらっしゃいますか?

どのように解決するのですか?

私は2番目のオプションのために決定した - パースする AndroidManifest.xml . 以下は動作中のスニペットです。

task('increaseVersionCode') << {
    def manifestFile = file("AndroidManifest.xml")
    def pattern = Pattern.compile("versionCode=\"(\\d+)\"")
    def manifestText = manifestFile.getText()
    def matcher = pattern.matcher(manifestText)
    matcher.find()
    def versionCode = Integer.parseInt(matcher.group(1))
    def manifestContent = matcher.replaceAll("versionCode=\"" + ++versionCode + "\"")
    manifestFile.write(manifestContent)
}

tasks.whenTaskAdded { task ->
    if (task.name == 'generateReleaseBuildConfig') {
        task.dependsOn 'increaseVersionCode'
    }
}

versionCode は、この場合、リリースビルドのために解放されます。デバッグビルド用に増やす場合は task.whenTaskAdded のコールバックを変更します。