iOS アプリで最新の git commit ハッシュを取得して表示する
アプリがビルドされた正確なコミットを知りたい場合は、アプリのバージョンを表示する場所に最新の git commit ハッシュを含めることができます.生成されたハッシュを「リビジョン」または略して「リビジョン」と呼ぶのが好きです.
これを表示すると、アプリの内部バージョンを QA エンジニアに配布していて、彼らがテストしているアプリのバージョンを知りたい場合に役立ちます.変更は開発ブランチに反映されますが、バージョン番号やビルド番号を増やすことはありません.リビジョン値に従い、使用中のバージョンを常に把握しています.
この記事では、最新の git commit ハッシュを Xcode で取得して iOS アプリに表示する方法を説明します.
これから説明する手順では、指定されたキーを使用して
最初のステップは、ターゲットのビルド フェーズ設定に移動し、新しい実行スクリプト フェーズを追加することです. 「スクリプトの実行」アクションは一番下にあり、「バンドル リソースのコピー」アクションの上に移動する必要があります.
移動するときは、スクリプトに次のコードを貼り付けることができます.
上記のスクリプトでは、PlistBuddy を使用してキー
ビルド プロセスを実行すると、追加したスクリプトによって
リビジョンを表示するには、
Objective-C では、次のようにします.
これを表示すると、アプリの内部バージョンを 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"];
Reference
この問題について(iOS アプリで最新の git commit ハッシュを取得して表示する), 我々は、より多くの情報をここで見つけました https://dev.to/daholino/fetch-and-display-the-latest-git-commit-hash-in-your-ios-apps-1fp2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol