LoginSignup
35
30

More than 5 years have passed since last update.

AppのIconからVersionやCommitを判別して混乱を防ぐ

Last updated at Posted at 2017-05-10

8FE31810-1C87-48DC-A378-80C8B04273CD.png

Update 2018/08/12

iOS版にてiOS11端末にアプリをインストールした際にアイコン画像が変わらないという問題があったので修正しました。(v1.0 -> v1.1)
今までのように直接ビルド中間ファイルのアイコンファイルを書き換えるのではなく、actoolを使って生成する方法に変更しました。(この方法をWWDC2018でAppleのエンジニアの方に教えていただきました:clap:

Update 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もしくはご指摘いただけると助かります!

35
30
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
30