多target的使用一般是两种场景:
1.项目中不同环境创建多个target进行管理,这样不需要请求接口的注释和打开。也可以发布版本的区分
2.项目的相似度很高基本达到百分之九十,除了icon启动图,个别页面不一样其他完全一样
目前我们项目中是第二种情况。公司做了几年的项目要大改版,只留下外壳里面内容和现在我们做的另外一个项目相同。我们直接用这种方案来解决。相当于维护一份代码,管理了两个客户端。
用一个测试工程来演示多target创建步骤
1.在项目中选中之前的target有键入下图所示,点击后如果出现提示框请选择“Duplicate Only”,之前创建选择过就不会出现了

2.修改target名字和scheme名字
双击target进行修改名字修改为ZMXTargetTest



3.修改和添加plist文件
plist文件也可以双击进行修改名字,完成后点击新创建的target"choose info.plist"选择对应的plist文件,修改bundleID和版本号

4.修改完成后创建资源文件
不同的项目中icon 和 lunchimage 还有占位图都是不一样的,这时候我们就要进行区分target进行加载
我们添加文件里面选中Asset Catalog 文件

创建完成后我们可以对他们的target勾选进行区分(也可以在创建的时候勾选区分),两个资源文件夹对应的是各自的target.例如ZMXTarget项目运行时候会加载Assets资源文件夹的资源,ZMXTargetTest项目运行会加载ZMXTargetTest资源文件夹的资源。



5.配置预编译的宏
选中ZMXTargetTest的buildSettings 搜索输入 macros ,然后再Preprocessor Macros 里面可以看到里面有Debug 和Release,双击后点击加号添加ZMXTARGET=1.宏定义完成可以在项目中使用


所有target的创建和配置已经完成,其余是项目中使用。
多target使用中要注意创建文件的时候.m文件是否勾选了两个target。因为忘记勾选我们项目中经常报错。对公司项目相似app的创建很实用
网友评论