我们项目中,默认建好是只有一个target的,但是,一些场景中,多target能帮助我们更好的使用项目。

场景1:

同一项目,一般会分不同环境:开发环境、测试环境、正式(生产)环境。

这就涉及到一个请求接口的区别,一般我们可能会定义多个,每次切换环境,就用代码注释解决,的确不是太方便。

其次一个,就是某一类特殊项目,主功能都一样,可能就是只需要更换icon图标、bundleID等等信息,需要发布多款APP,这种情况下,你如果每次发布一个就手动替换这些信息,真的要哭了。。。

场景2:

就是同一产品会有两种客户端构成,现在有很多这种场景下的项目,类似滴滴的司机端和乘客端,教学项目的学生端和教师端等等。。

这种项目,会生成2个App,但其中很多东西可以共用,因此在一个项目里创建管理,会更好更方便。

============对于场景1 :=============

1、打开项目,找到TARGETS,选中第一个右击

2、创建完,会这样,我们之间点击重命名

        --->      

3、我们查看Schemes,这边需要手动更改

--------->

4、修改plist文件,同样,我们的plist文件拷贝过来后,重命名,但这边有点特殊,需要额外做一步操作。

重命名后,删除,记住不要删本地,如图

然后,从本地再拖进来,选择对应的target

最后,在这边choose添加进来。

这样做的原因就是,如果仅仅重命名了,系统还是识别不了的,必须经过这几步,重新让系统识别plist文件。

5、上面准备工作基本完成,所以我们可以得到这样的targets

现在如果我要对不同环境下设置不同的相关配置描述,打开build Settings

如果OC项目:搜索macros关键字

在这边添加需要的预处理指令, 最好在debug和release都加一下,比如:

如果是Swift项目,Swift比较特殊,不能在这边设置(设置无效),不过swift提供了另外一种方式设置:

这里注意两点:

1、加“”,用字符串格式

2、先写-D,一定要写,否则无效,所以要写两个指令,如上图所示

6、如何使用呢?

OC项目,可以直接在共用设置.h文件或pch文件内设置。

Swift项目,可以直接在定义文件里写,我这边用的Swift测试,就直接写swift了:

然后我们使用的时候,就可以得到结果了,比如我在test的target下run:

结果:

同理,除了不同环境下的请求url,还可以在这里设置一些每个环境下的独有内容,很方便。

如果需要Demo点击这里获取

============对于场景2:============

1、正常新建一个项目,完成后  如下:

2、这一步就是添加一个新的target

3、添加完,就会发现多出一个新的,变成这样。

还有人会在target管理处,点击+添加,不过不建议这样,这样添加也能实现,不过系统会自动添加不全,还需手动补全一些文件。

当然实现也是可以的。

最新文章

  1. python gettitle.py
  2. kafka环境搭建及librdkafka测试
  3. HDU 2829 Lawrence (斜率DP)
  4. FileSystemWatcher用法详解
  5. InfoSphere BigInsights 安装部署
  6. 简单md5加密
  7. 向量的叉积 POJ 2318 TOYS & POJ 2398 Toy Storage
  8. 神舟飞船上的计算机使用什么操作系统,为什么是自研发不是 Linux?
  9. [置顶] 白话二分匹配之最大匹配+附上hdu2063解题报告
  10. 剑指offer-面试题.二叉树的镜像
  11. Java二叉排序树(转)
  12. SpringMVC同时使用<mvc:resources … />和日期转换Formatter时出现问题的解决方法
  13. c#弱事件(weak event)
  14. MYSQL 修改表结构基本操作一览
  15. JAVA高级篇(三、JVM编译机制、类加载机制)
  16. 第一个Python小项目:图片转换成字符图片
  17. RabbitMQ基础知识详解
  18. 20165303实验一 Java开发环境的熟悉
  19. aiohttp基本及进阶使用
  20. 【POJ3565】ANTS KM算法

热门文章

  1. 用JavaScript,获取Table中指定的行、列
  2. Objective-C:协议protocol
  3. 混沌数学之Henon模型
  4. 第一章 Java工具类目录
  5. asm rebalance 原理
  6. JavaScript中定义对象的四种方式
  7. HTML标签 闭合还是不闭合?
  8. poj_1681_高斯消元
  9. Inf2Cat应用的参数使用详细介绍
  10. [Backbone] Parse not formatted JSON code