iOS アプリで最新の git commit ハッシュを取得して表示する


アプリがビルドされた正確なコミットを知りたい場合は、アプリのバージョンを表示する場所に最新の git commit ハッシュを含めることができます.生成されたハッシュを「リビジョン」または略して「リビジョン」と呼ぶのが好きです.

これを表示すると、アプリの内部バージョンを QA エンジニアに配布していて、彼らがテストしているアプリのバージョンを知りたい場合に役立ちます.変更は開発ブランチに反映されますが、バージョン番号やビルド番号を増やすことはありません.リビジョン値に従い、使用中のバージョンを常に把握しています.

この記事では、最新の git commit ハッシュを Xcode で取得して iOS アプリに表示する方法を説明します.

最新の git commit ハッシュの取得



これから説明する手順では、指定されたキーを使用して Info.plist ファイルに新しい行を追加し、値を短い git commit ハッシュに設定します.

最初のステップは、ターゲットのビルド フェーズ設定に移動し、新しい実行スクリプト フェーズを追加することです. 「スクリプトの実行」アクションは一番下にあり、「バンドル リソースのコピー」アクションの上に移動する必要があります.

移動するときは、スクリプトに次のコードを貼り付けることができます.

GIT=`xcrun -find git`
GIT_REV=`${GIT} rev-parse --short HEAD`
/usr/libexec/PlistBuddy -c "Set :REVISION ${GIT_REV}" "${SRCROOT}/{{path-to-your-info.plist-file}}"


上記のスクリプトでは、PlistBuddy を使用してキー REVISION と最新の git commit ハッシュの値をアプリの Info.plist ファイルに設定しています. PlistBuddy は、plist ファイルの管理に役立つ macOS ユーティリティです.詳しくは here を参照するか、ターミナルに /usr/libexec/PlistBuddy -h と入力して、何ができるかを確認してください.

ビルド プロセスを実行すると、追加したスクリプトによって Info.plist ファイルに新しいエントリが挿入され、表示に進むことができます.

リビジョンの表示



リビジョンを表示するには、Info.plist をフェッチし、そこから値を読み取るためのキーを提供する必要があります.

let revision = Bundle.main.object(forInfoDictionaryKey: "REVISION") as? String 


Objective-C では、次のようにします.

NSString *revision = [NSBundle.mainBundle objectForInfoDictionaryKey:@"REVISION"];