Posted at

Androidアプリがどのブランチでビルドされたものかをアプリから確認する

More than 1 year has passed since last update.

Androidアプリを開発していて、「あれ、これどのブランチでビルドしたやつだっけ?」となることありませんか?

私の場合は、しばらく使ってなかった端末だったり、コードレビューのためにブランチを切り替えたりしていると稀によく起こります。

なので、アプリ上でどのブランチでビルドしたものかを確認できるようにしてやりましょう。

以下のように、build.gradleの中で今いるブランチ名を取得し、BuildConfigに文字列を書き込んであげます。


build.gradle

android {

defaultConfig {
...
// 現在のgitのブランチ名を取得してBuildConfigに入れる
def branch = 'git rev-parse --abbrev-ref HEAD'.execute([], project.rootDir).in.text.trim()
buildConfigField "String", "BRANCH_NAME", "\"${branch}\""
...
}
}

こうすることで、ビルド時にBuildConfig.BRANCH_NAMEに自動的にブランチ名が格納されます。


BuildConfig.java

public final class BuildConfig {

...
// Fields from default config.
public static final String BRANCH_NAME = "master";
...
}

あとはブランチ名を表示したいところでBuildConfigを使って呼び出してあげればOKです。例えばToastならこんな感じ。

リリースビルド時に表示されるとマズいので、BuildConfig.DEBUG == trueの時のみ動くようにしておきましょう。


MainActivity.java

if (BuildConfig.DEBUG) {

Toast.makeText(this, BuildConfig.BRANCH_NAME, Toast.LENGTH_LONG).show();
}