iOS項目中多個target管理

一般來說,我們項目中,默認建好是只有一個target的(UItests等除外),但是,一些場景中,多target能幫助我們更好的使用項目。
比如以下場景

    1. 同一項目,一般會分不同環(huán)境:開發(fā)環(huán)境、測試環(huán)境、正式(生產(chǎn))環(huán)境,內(nèi)網(wǎng)環(huán)境 ,外網(wǎng)環(huán)境等,這就涉及到一個請求接口的區(qū)別,一般我們可能會定義多個,每次切換環(huán)境,就用代碼注釋解決是可以完成, 但是很便捷.我們?nèi)绻捎肨arget來解決就會便利很多.
    1. 同一產(chǎn)品會有多種客戶端構成,現(xiàn)在有很多這種場景下的項目,類似美團外賣商家和用戶客端,教學項目的學生端和教師端等,淘寶的客戶端,商家端等等情況
      這種項目,會生成多個App,但其中很多東西可以共用,如果在一個項目里創(chuàng)建管理,會更好更方便。
      基于以上原因,我們有必要研究一下多個Target的管理和使用.
準備工作

創(chuàng)建一個Project 命名為MYDemo,項目默認為我們創(chuàng)建了一個Target,名字為c

添加2個Target

選中target,右鍵選擇Duplicate就會添加一個target
重復來一次再加1個target

你會發(fā)現(xiàn)多了2個target 和2個info.plist

屏幕快照 2017-10-18 下午3.29.17.png

你會發(fā)現(xiàn)2個target和info.plist的名字都是帶有copy的 不滿意要修改稱自己想要的,進行以下操作

  • 1 改target名字和Scheme
    點擊左上角模擬器左邊的target選擇項,
    選擇Manage Schems
屏幕快照 2017-10-18 下午3.34.01.png

改成自己想要的名字,這里我們未來便于區(qū)分理解 ,是以MYDemo-dev ,MYDemo-test來命名的

屏幕快照 2017-10-18 下午3.36.42.png
  • 2 修改info.plist名字
    這個簡單直接在文件名上改,為了統(tǒng)一管理名字還是以MYDemo-dev ,MYDemo-test來命名的
屏幕快照 2017-10-18 下午3.41.45.png
配置不同環(huán)境

在build setting 中搜索Macros
然后在Preprocessor Macros 添加預編譯宏WD_Environment_Mode

  • 0 生產(chǎn)環(huán)境 WD_Environment_Mode==0
  • 1 開發(fā)環(huán)境 WD_Environment_Mode==1
  • 2 測試環(huán)境 WD_Environment_Mode==2

注意三個target都要配置

0099D639-C536-447B-8969-4CF3F16A9482.png

這樣我們就可以在項目中根據(jù)WD_Environment_Mode來判斷切換不同的環(huán)境了

下面做個測試
給項目添加個pch 文件 ,這個pch添加配置就不多講了.
在pch 中 添加一些預編譯指令

#ifdef WD_Environment_Mode


#if WD_Environment_Mode==0

#define  MAR_KeyK   @"222"

#elif  WD_Environment_Mode ==1
#define  MAR_KeyK   @"333"

#elif  WD_Environment_Mode ==2
 #define  MAR_KeyK   @"444"
#endif

然后我們在控制器的viewDidLoad 里面添加如下代碼
運行不同的target看結果

 NSLog(@"---kye%@",MAR_KeyK);
    switch (WD_Environment_Mode) {
            
            
        case 0:
            NSLog(@"生產(chǎn)00");
            
            break;
        case 1:
            NSLog(@"開發(fā)01");
            break;
        case 2:
            NSLog(@"測試02");
            break;
            
        default:
            break;
    }
  • 0 生產(chǎn)環(huán)境
    結果如下


    8836EB4F-5A1E-460C-A989-B4FBE001D8A5.png
  • 1 開發(fā)環(huán)境

  • 2 測試環(huán)境
9D8165D5-C3E2-4EAF-B86C-64D200CF78CB.png

總結: 這樣不用去手動注釋修改代碼 只需要切換target 是不是很方便給力呢?

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容