iOS项目中多个target管理

一般来说,我们项目中,默认建好是只有一个target的(UItests等除外),但是,一些场景中,多target能帮助我们更好的使用项目。
比如以下场景

    1. 同一项目,一般会分不同环境:开发环境、测试环境、正式(生产)环境,内网环境 ,外网环境等,这就涉及到一个请求接口的区别,一般我们可能会定义多个,每次切换环境,就用代码注释解决是可以完成, 但是很便捷.我们如果采用Target来解决就会便利很多.
    1. 同一产品会有多种客户端构成,现在有很多这种场景下的项目,类似美团外卖商家和用户客端,教学项目的学生端和教师端等,淘宝的客户端,商家端等等情况
      这种项目,会生成多个App,但其中很多东西可以共用,如果在一个项目里创建管理,会更好更方便。
      基于以上原因,我们有必要研究一下多个Target的管理和使用.
准备工作

创建一个Project 命名为MYDemo,项目默认为我们创建了一个Target,名字为c

添加2个Target

选中target,右键选择Duplicate就会添加一个target
重复来一次再加1个target

你会发现多了2个target 和2个info.plist

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

你会发现2个target和info.plist的名字都是带有copy的 不满意要修改称自己想要的,进行以下操作

  • 1 改target名字和Scheme
    点击左上角模拟器左边的target选择项,
    选择Manage Schems
屏幕快照 2017-10-18 下午3.34.01.png

改成自己想要的名字,这里我们未来便于区分理解 ,是以MYDemo-dev ,MYDemo-test来命名的

屏幕快照 2017-10-18 下午3.36.42.png
  • 2 修改info.plist名字
    这个简单直接在文件名上改,为了统一管理名字还是以MYDemo-dev ,MYDemo-test来命名的
屏幕快照 2017-10-18 下午3.41.45.png
配置不同环境

在build setting 中搜索Macros
然后在Preprocessor Macros 添加预编译宏WD_Environment_Mode

  • 0 生产环境 WD_Environment_Mode==0
  • 1 开发环境 WD_Environment_Mode==1
  • 2 测试环境 WD_Environment_Mode==2

注意三个target都要配置

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

这样我们就可以在项目中根据WD_Environment_Mode来判断切换不同的环境了

下面做个测试
给项目添加个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(@"生产00");
            
            break;
        case 1:
            NSLog(@"开发01");
            break;
        case 2:
            NSLog(@"测试02");
            break;
            
        default:
            break;
    }
  • 0 生产环境
    结果如下


    8836EB4F-5A1E-460C-A989-B4FBE001D8A5.png
  • 1 开发环境

  • 2 测试环境
9D8165D5-C3E2-4EAF-B86C-64D200CF78CB.png

总结: 这样不用去手动注释修改代码 只需要切换target 是不是很方便给力呢?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,030评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,198评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 144,995评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,973评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,869评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,766评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,967评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,599评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,886评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,901评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,728评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,504评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,967评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,128评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,445评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,018评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,224评论 2 339

推荐阅读更多精彩内容