在實際開發中,我們往往需要配置多個運行環境,比如測試版和證書版,同一套代碼,需要生產兩個名字不一樣,證書不一樣,服務器不一樣的產品。這時候就需要配置多個target來管理了。
復制target
- 在xcode文件結構中,點擊項目文件,然后在右邊的工作區的左欄找到TARGETS,然后右擊原來的target,然后選擇【Duplicate】就可以復制一個和target副本出來,并且會生成一個info.plist文件副本和一個scheme副本。如下圖
-
修改target名稱,單擊多個TargetDemo copy ,然后在點擊一下就可以修改名稱TargetDemoTest
QQ20160818-2@2x.png -
修改Scheme名稱,在Xcode左上角點擊Scheme,然后在點擊 Manage Scheme。
QQ20160818-5@2x.png
在Schemem列表中選擇targetcopy,然后在單擊一下就可以修改Scheme名稱了
配置info.plist
-
在上一步中,復制target的時候提到過也會復制出一份info.plist文件,而且這個文件在項目的根路徑,和原來的info.plist文件不是同一個路徑。
QQ20160818-7@2x.png -
先將plist文件改名為"TestInfo.plist",然后將文件拖入代碼文件路徑,和原來的plist文件同一路徑。
QQ20160818-8@2x.png - 回到xcode中,將原來的copy的plist文件引用刪除,把新的TestInfo.plist拖到代碼文件夾中。
注意:拖入文件的時候,要選擇copy出來的target,也就是TestTarget
-
配置plist路徑,點擊新的target,然后在Built Setting 中搜索 info.plist 找到配置項
QQ20160818-10@2x.png
雙擊配置項,修改成以下路徑
QQ20160818-11@2x.png
修改項目名稱和Bundle Identifier
-
修改Bundle Identifier,點擊新的target,在 General 中直接修改
QQ20160818-12@2x.png - 修改項目名稱,選擇TestInfo.plist文件,修改Bundle name
添加預編譯宏
在代碼中,我們需要判斷運行的是哪個target,做一些業務判斷。
-
在新的target中,點擊Build Setting ,搜索 “preprocessor Macros”,在配置項中添加 TEST 宏,Debug和 Release都要添加
QQ20160818-14@2x.png
運行程序
分別運行兩個Scheme,可以看到2個App已經安裝到模擬器
宏判斷
在appdelegate 添加以下判斷
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
#ifdef TEST
NSLog(@"測試版本");
#endif
return YES;
}
在運行test Scheme時就可以看到打印
更多設置
現在兩個target完全獨立,要設置什么都可以在Build Setting 設置,包括證書,或者是應用的Logo都可以單獨設置。