在Xcode中添加多個targets進行版本控制

原文:http://blog.csdn.net/ysysbaobei/article/details/10951991

** 在ios開發時,我們經常會遇到對同一個app開發多個版本(Pro、Lite、Free)的情況,這里就涉及到xcode里通過添加多個targets來進行版本控制的問題了,下面就簡單說明一下:**
點擊左側的工程名稱,右側會出現PROJECT和TARGETS,點擊你現在的target,假如叫A,右鍵彈出菜單中,選擇Duplicate,復制一個相同的target,復制的target一般叫A copy,A copy和A的設置(編譯條件、源文件、資源文件)完全一樣,此時你可以根據需要修改A copy的編譯條件和資源文件了;

  1. A copy的名稱是不是顯得不夠專業?現在來修改一下:
  1. 首先修改Xcode左上角的target名稱:
    點擊xcode左上角Run、Stop右邊的工程名稱,下拉框中選擇Manage Schemes,在彈出框中,點擊A copy那行,點擊一次、再點擊一次,就可以修改A copy為你想要的名字了,比如ALite;
  2. 修改xcode左下方Products下的A copy.app名稱:
    點擊Targets下你剛才改名后的ALite,點擊Bulid Setting,搜索Packaging下的Private Headers Folder Path,修改A copy.app/PrivateHeaders為:ALite.app/PrivateHeaders
  1. 修改Bundle Identifier和選擇不同的證書,讓app區分開來
  1. 新target需要的.plist文件
    新建一個文件夾X,添加X到項目中,添加時選擇target為ALite,不要選target A了,因為不是共用的;復制原來target的A-Info.plist到X,修改其名稱為ALite-Info.plist,xcode中右鍵Add File To ...,選擇添加到target ALite中;
  2. 點擊target: ALite ->Summary:提示你需要選擇plist文件,選擇1)中添加的ALite-Info.plist;
  3. 點擊target: ALite ->Summary:設置Bundle Idenfitier;
  4. 點擊target: ALite->Build Settings->Code Signing:選擇另外的證書;
  1. 修改程序名稱
    一般說來,多個target的程序名稱不同,復制zh-Hans.lproj和en.lproj下的InfoPlist.strings文件到X,xcode中右鍵Add File To ...,選擇添加到target ALite中;然后修改InfoPlist.strings的內容:CFBundleDisplayName="程序名稱Lite";

  2. 2個target到現在就創建好了,你添加資源文件的時候,通過選擇添加的target來控制不同版本的內容;再說一下預編譯宏的事情:target->Build Setting,搜索:Preprocessor Macros,設置Debug和Release里的預編譯宏內容,比如TARGET_VERSION_LITE=1表示lite版本(注意=前后不能右空格,有空格會編譯不過),程序中對不同版本這樣判斷:

#if TARGET_VERSION_LITE ==1
...
#elif TARGET_VERSION_LITE ==2
...
#endif
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容