2012-09-12 38 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之後的位置。
  4. 殼牌/bin/sh
  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. 導入GitVersion.h文件到的Xcode項目

  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

相關問題