Edited at

ビルド時の git commit id をAndroid プログラムに埋め込む

More than 1 year has passed since last update.

Android アプリを作っていて、ビルドしたソースコードを特定したいときに git の commit が参照できたらいいですよね。

// git describe を実行して結果を取得

def getRevision() {
def proc = "git describe --dirty --always --tags".execute()
proc.waitFor()
(proc.exitValue() == 0) ? proc.text.trim() : ""
}

android {
defaultConfig {
// BuildConfig へ埋め込み
buildConfigField "String", "REVISION", "\"" + getRevision() + "\""
}
}

Android の gradle plugin には BuildConfig クラスに static フィールドを追加する buildConfigField が用意されており、 build.gradle は groovy なので単に外部コマンドを実行することで実現できます。便利。

コード中からは次のように参照できます。

String revision = BuildConfig.REVISION; // ← あなたのパッケージの BuildConfig