OC

iOS项目中多个target管理

2017-10-18  本文已影响90人  进阶的蚊子

一般来说,我们项目中,默认建好是只有一个target的(UItests等除外),但是,一些场景中,多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的 不满意要修改称自己想要的,进行以下操作

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

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

屏幕快照 2017-10-18 下午3.36.42.png 屏幕快照 2017-10-18 下午3.41.45.png
配置不同环境

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

注意三个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;
    }
9D8165D5-C3E2-4EAF-B86C-64D200CF78CB.png

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

上一篇 下一篇

猜你喜欢

热点阅读