以下の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'
}
}