優(yōu)點:一鍵切換不同環(huán)境
例如:Dev蔫骂、UAT么翰、Dis,每一個環(huán)境都可以對應(yīng)自己的應(yīng)用名稱辽旋、AppIcon浩嫌、LaunchImage、橋接文件等补胚。從而我們可以設(shè)置每一個環(huán)境所對應(yīng)的業(yè)務(wù)邏輯码耐,多個Target也適用于多個App存在較小的差異,每個Target對應(yīng)一個App
目錄
1.如何創(chuàng)建多個Target溶其?
2.如何通過多個Target分別對應(yīng)自己的AppIcon骚腥、LaunchImage等
3.如何在代碼中區(qū)分Target進而使用不同的業(yè)務(wù)邏輯?比如不同環(huán)境不同Host瓶逃?
一束铭、如何創(chuàng)建多個Target廓块?
- 方式一:File->New->Target->選擇模版創(chuàng)建(注意:新建一份這種方式創(chuàng)建出來的會擁有自己的AppDelegate和main,方式二則沒有)
- 方式二:Project->Target右鍵Duplicate Only(注意:該方式優(yōu)點在于可以直接復(fù)制原有Target的設(shè)置內(nèi)容契沫,如果兩個Target相同點很多的話带猴,使用該方式最優(yōu))
拷貝出來的Target需要進行修改名稱,修改名稱步驟如下:
1.Project->修改對應(yīng)Target名稱
2.修改Scheme對應(yīng)的名稱
3.修改Plist文件名稱->Show In Finder修改文件名稱->Project下選中Target埠褪,General下的Identity的Choose Info.plist File或者Build Settings下設(shè)置Info.plist File路徑為$(SRCROOT)/MoreTargetCopy/MoreTargetCopyInfo.plist浓利。接下來你就可以修改對應(yīng)的Bundle Identifier、應(yīng)用名稱钞速、版本號等贷掖!
二、如何通過多個Target分別對應(yīng)自己的AppIcon渴语、LaunchImage
橋接文件的設(shè)置:
橋接文件的設(shè)置苹威,只需選中對應(yīng)的Target并設(shè)置對應(yīng)的Prefix Header即可(路徑)
設(shè)置App Icon和Launch Image
1.新建出來的Target:在對應(yīng)的.xcassets導(dǎo)入圖即可
2.拷貝出來的Target:原本的又一個AppIcon,再新建一個AppIcon驾凶,然后去對應(yīng)Target中的General選擇要展示的AppIcon即可
-
修改文件作用域:
如下圖牙甫,左側(cè)選中要修改的文件,右側(cè)選中對應(yīng)的Target即可调违,勾選哪一個Target就表示該文件將作用于選中的Target窟哺。
-
修改對應(yīng)Target的源文件和資源文件:
選中Project,點擊Build phase技肩,找到相應(yīng)文件添加或刪除(Compile Source是源文件且轨,Copy Bundle Resources是資源文件,有用的添加虚婿,沒用的刪除即可)
三、如何在代碼中區(qū)分Target進而使用不同的業(yè)務(wù)邏輯然痊?比如不同環(huán)境不同Host至朗?
- Preprocessor macros宏定義的使用
當(dāng)多個Target使用同一個文件時,使用宏定義區(qū)分是哪個Target剧浸,設(shè)置步驟就是選中對應(yīng)Target->Build Settings->搜索Preprocessor macros->分別對Debug和Release設(shè)置锹引,設(shè)置好后即可以用,如下圖
if (APPTYPE == 0) {
NSLog(@"Targe1:這是第%d個Target",APPTYPE);
} else if (APPTYPE == 1) {
NSLog(@"Targe1:這是第%d個Target",APPTYPE);
} else if (APPTYPE == 2) {
NSLog(@"Targe1:這是第%d個Target",APPTYPE);
} else {
NSLog(@"Targe1:這是第%d個Target",APPTYPE);
}
#if APPTYPE == 0
#import ""
#dlif APPTYPE == 2
#import ""
#else
#endif
#if XHDEBUG
#elif XHRELEASE
#else
#endif
注意事項
1.不共用的文件就設(shè)置對應(yīng)自己的Target辛蚊,共用的文件區(qū)分Target就用宏區(qū)
2.你可以使用多個Target配置不同環(huán)境粤蝎,證書也可以對應(yīng)配置哦