XCode之多個Target

優(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)用名稱钞速、版本號等贷掖!
    創(chuàng)建Target的兩種方式

二、如何通過多個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窟哺。

    修改文件所屬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è)置好后即可以用,如下圖
    設(shè)置Preprocessor macros
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)配置哦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市袋马,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌秸应,老刑警劉巖虑凛,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碑宴,死亡現(xiàn)場離奇詭異,居然都是意外死亡桑谍,警方通過查閱死者的電腦和手機延柠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來锣披,“玉大人贞间,你說我怎么就攤上這事”⒎拢” “怎么了增热?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胧辽。 經(jīng)常有香客問我峻仇,道長,這世上最難降的妖魔是什么邑商? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任摄咆,我火速辦了婚禮,結(jié)果婚禮上人断,老公的妹妹穿的比我還像新娘吭从。我一直安慰自己,他們只是感情好恶迈,可當(dāng)我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布涩金。 她就那樣靜靜地躺著,像睡著了一般蝉绷。 火紅的嫁衣襯著肌膚如雪鸭廷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天熔吗,我揣著相機與錄音辆床,去河邊找鬼。 笑死桅狠,一個胖子當(dāng)著我的面吹牛讼载,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播中跌,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼咨堤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了漩符?” 一聲冷哼從身側(cè)響起一喘,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凸克,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體议蟆,經(jīng)...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年萎战,在試婚紗的時候發(fā)現(xiàn)自己被綠了咐容。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡蚂维,死狀恐怖戳粒,靈堂內(nèi)的尸體忽然破棺而出赁项,到底是詐尸還是另有隱情掖举,我是刑警寧澤悍募,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布垦页,位于F島的核電站产上,受9級特大地震影響操骡,放射性物質(zhì)發(fā)生泄漏晓折。R本人自食惡果不足惜厅翔,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一又活、第九天 我趴在偏房一處隱蔽的房頂上張望苔咪。 院中可真熱鬧,春花似錦柳骄、人聲如沸团赏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舔清。三九已至,卻和暖如春曲初,著一層夾襖步出監(jiān)牢的瞬間体谒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工臼婆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抒痒,地道東北人。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓颁褂,卻偏偏與公主長得像故响,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子颁独,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 背景介紹 開發(fā)過程中彩届,我們會在內(nèi)網(wǎng)搭建一個測試服務(wù)器,開發(fā)誓酒、測試都是在內(nèi)網(wǎng)進行的樟蠕。這樣產(chǎn)生臟數(shù)據(jù)不會影響外網(wǎng)的服務(wù)...
    ShanJiJi閱讀 14,735評論 8 29
  • 需求:當(dāng)兩個甚至兩個以上的app存在小差異時,可以在一個工程(project)創(chuàng)建多個target每個target...
    寸光片靜閱讀 29,992評論 21 69
  • 我們在iOS開發(fā)中可能會遇到同時開發(fā)多個類似項目的情況。這些項目大同小異坯墨,有諸多代碼可以共用寂汇,如果每個項目都分別開...
    梧雨北辰閱讀 3,113評論 0 20
  • 我們在iOS開發(fā)中可能會遇到同時開發(fā)多個類似項目的情況病往。這些項目大同小異捣染,有諸多代碼可以共用,如果每個項目都分別開...
    FlowYourHeart閱讀 830評論 0 4
  • 在項目開發(fā)中停巷,難免會遇到要同時維護多個app的情況耍攘,而如果這幾個app有很大一部分的重復(fù)內(nèi)容,其最好的解決方式畔勤,就...
    流火緋瞳閱讀 8,058評論 0 17