アプリのアイコンにブランチやビルド設定を表示する

  • 35
    Like
  • 2
    Comment

※2017/11/09 Android版も作りました(まだalpha版&ちょっと手抜きなのでちゃんと動かない可能性もあります。)
https://github.com/Tueno/IconHUD-Android

問題

社内でプロジェクト関係者の人が開発版のアプリを社内サーバーから入れて試してもらえるようになっているのですが、こんな問題がありました。

  • APIサーバーの環境ごとに複数アプリを書き出して共存させていて、インストール後にどのアプリがどこに繋がるのかがパッと見てわからない
  • 不具合が発生したアプリのコミットIDがわからない(不具合が発生した報告を貰ったが実は後のコミットで修正済みだった、など)
  • どのブランチのアプリなのかパッと見てわからない

(そもそも開発フローやルールの問題というのもありそうですが...)

解決法

アイコンにビルド時の情報を載せることで、ホーム画面からアプリの情報が簡単に把握できるようになりました。

やり方

ツールを
https://github.com/Tueno/IconHUD (iOS版)
https://github.com/Tueno/IconHUD-Android (Android版)
に公開しました。

機能

  • ビルド日時・バージョン・コミットID・ブランチ名をアイコン画像の上に追加します
  • プロジェクト内のアイコンファイルを書き換えません(ビルド用の一時ファイルのみ上書きします)
  • TravisCI上での実行に対応(ブランチ名が正しく取得できないため別途処理が必要でした)
  • Releaseビルドでは動作しません(BuildConfig/BuildTypeをチェックしているので変更した場合はご注意下さい)
  • 必要に応じてDebugビルドでの処理を止められます(時間短縮用)

実行するとこんな感じになります。
iconhud_sample.png

プロジェクトに導入するには

iOS版

brew tap tueno/iconhud
brew install iconhud

Android版

brew tap tueno/iconhud-android
brew install iconhud-android

でインストール後に、プロジェクト側に実行処理を記述するだけです。(記述箇所と内容はリポジトリのREADMEを参照。)

ちなみに、ビルドディレクトリのアイコン画像を加工するので、プロジェクトに入っているアイコン画像を汚すことはありません。
また、Debugビルド時には不要な場合は

--ignore-debug-build

のようにオプションを指定してください。
(その他のオプションについては -h で確認できます。)

注意点など

※Releaseビルドでは動作しないようになっているので、iOS版では社内配布用のBuildConfigを作成してご利用ください。
※アイコン画像が存在しない場合には対応できていません。
※昔の方法ですが、 Info.plist にアイコン画像ファイルを指定する方法には対応していません。(iOS版)

まだ少ない人数でしか使っていないため、抜け漏れや不具合などありましたらPRもしくはご指摘いただけると助かります!