soranoba
soranoba Author of soranoba.net
programming

iOSアプリにビルドハッシュを組み込む方法

iOSアプリでビルドハッシュ (git hash)を含めるやり方はいくつかありますが、個人的に良いと思った「xcconfigとPre-actionsを用いた」方法を紹介します。

xcconfigの設定

Project > 該当するProject > Infoタブ > Configurationsセクション で、ベースになるConfigurationファイル (xcconfig)を指定することができます。

ビルドハッシュを含めたいConfigurationに対し、それぞれのファイル内で以下の行を追加します。
version.xcconfigは次のPre-actionsで生成するファイルです。

#include? "version.xcconfig"

Pre-actionsの設定

Scheme設定内、Build > Pre-actions

  • Shell: /bin/sh (デフォルト)
  • Provide build settings from: アプリケーションを指定
if which git > /dev/null; then
  echo "BUILD_HASH=$(git -C $PROJECT_DIR rev-parse --short HEAD)" > ${PROJECT_DIR}/configs/version.xcconfig
fi

出力先にxcconfigのパスは、上記のxcconfigのincludeで読み込めるパスにする必要があります。

Envをアプリ内から読めるようにする設定

info.plistに以下のように項目を追加すると、ビルド時にvalueとして環境変数が設定されます。

<key>BuildHash</key>
<string>$(BUILD_HASH)</string>

コード上では下記のようにすると利用することができます。

Bundle.main.object(forInfoDictionaryKey: "BuildHash") as? String

(Updated: )

comments powered by Disqus