2012-09-12 12 views

答えて

6

スキームで行うことができます。あなたのスキームを開く(編集)、あなたのスキームでBuildを展開する、Pre-Actionsをクリックする、+ボタンをクリックする、New Run Script Actionを選択する、SHAを取得するスクリプトを書く、SHAを置くことができるヘッダファイルを変更する#define GIT_SHA @"...")、アプリでGIT_SHAを表示できる場所で使用してください。

+1

"スクリプトを書く"部分は、自明ではない部分です。あなたの答えは基本的に_「コンパイル時に何かをXcodeにさせるにはどうすればいい?」という質問が本質的にあったとき_「コンパイル時にXcodeを作成して現在のGit SHAを取得し、Objective-C/Swiftコードにアクセスできるようにする方法」 _。 –

16

バージョン2.17。 a85b242を構築します。

あなただけの次の手順を実行し、上記のようにきれいなバージョン管理を追加したい場合は、次の

  1. オープンBuild Phases Xcodeの
  2. 押しAdd Build Phase
  3. 押しAdd Run Script Build Phaseに。これはトップメニューエディタで見つけることができます。スクリプト行をTarget Dependenciesの後の位置にドラッグします。 スクリプトフィールドに以下のスクリプトを設定し/bin/sh
  4. から

  5. 設定シェルライン。ファイルのパスにソースを変更することを忘れないでください。ここでは、GitVersion.hが必要です。たとえば、次のように

    version=$(git rev-parse --verify HEAD | cut -c 1-7) 
    curdate=$(date +"%d.%m.%y") 
    
    filesource="//\n// GitVersion.h\n//\n// Created by sig on $curdate.\n//\n\n#ifndef GitVersion_h\n#define GitVersion_h\n\n#define GIT_SHA_VERSION @\"$version\"\n\n#endif" 
    
    cd ${SOURCE_ROOT}/${PROJECT_NAME} 
    echo -e "$filesource" > Sources/GitVersion.h 
    
    touch Sources/GitVersion.h 
    
  6. インポートのXcodeプロジェクトにGitVersion.hファイル

  7. これらの行を貼り付け:

    NSDictionary *info = [[NSBundle mainBundle] infoDictionary]; 
    NSString *version = [info objectForKey:@"CFBundleShortVersionString"]; 
    NSString *app_version = [NSString stringWithFormat:@"Version %@. Build %@.", version, GIT_SHA_VERSION]; 
    
    NSLog(@"app_version : %@", app_version); 
    

完全画像との回答を文書化し、利点を説明したが、可能性があり見つけたhere

+0

なぜこれに否定的な投票? – Boon

関連する問題