読者です 読者をやめる 読者になる 読者になる

日々精進

新しく学んだことを書き留めていきます

アプリアイコンにGitのブランチ名、コミットハッシュ値などを表示する

Android gradle

以下のgradle pluginを使う。

インストール手順は上記ページのUsageを参考にすればいいが、いくつか注意点が。 なお、確認した環境は以下。

  • OS X 10.9.5
  • gradle 2.2.1

以下注意点。

  • ImageMagickの他にGhostScriptもインストールしないと動かない。しかも、エラーメッセージが出ずビルドが止まるので原因を特定しづらい。もっとエラー処理ちゃんとしてほしい。。
  • ImageMagickとGhostScriptがインストール済みの環境でないとビルドが止まるようになってしまう。なので、ビルド時の引数でアイコンを書き換えるかどうかを判定すべき。
  • plugin側でBuildTypeがreleaseの場合はアイコンを書き換えないよう配慮してくれている。他のbuild variantも書き換えないようにしたい場合はif文を自分で書かないといけない。
  • 下記IssueによるとimageMagickのコマンドが"convert"だと動かないそうだが、手元の環境では普通に動いた。

build.gradleの例


// アプリアイコンにブランチ名、コミットのhash値、ビルド日時を表示する場合は
// ビルド引数に -PiconVersioningを渡すこと。
if (project.hasProperty('iconVersioning')) {
    println("execute icon versioning")
    apply plugin: 'app-icon-overlay'

    // アプリアイコンを書き換える。buildTypeがreleaseの場合は書き換えない。
    appiconoverlay {
        textColor '#000000FF'
        backgroundColor '#BEBEBEEE'
        format '$branch\n$commit\n' + new Date().format('yyyy/MM/dd')
        imageMagick 'convert'
    }
}