封面.jpg
前言
公司想同一份源码bulid多个版本。但不想多branch
进行管理。最终确定Multiple Targets
的方案。基本步骤如下
1.初始化一个新的工程命名为MultipleTargetsDemo
。
复制一个Target:
1.png
修改Target名字:
2.png
修改Bundle Identifier:
3.png
2.新添加一个NewAssets.xcassets
文件,我们现在演示不同的target
用不同的Apple Icon
运行。源target
还是引用Assets.xcassets
文件的Apple Icon
。我们为Assets.xcassets
添加Icons
。
4.png
而为
NewAssets.xcassets
添加APPIcon文件
但保持Icon
还是保持为空:
5.png
点击相应的target
文件选择Bulid Phases
,在Copy Bundle Resources
里面选择我们相应target
所需要的文件剔除不要的文件。比如源target
需要Assets.xcassets
而new target
需要NewAssets.xcassets
文件。
6.png
7.png
当然,以后你也需要根据你的项目需求去选择Compile Sources
文件。
8.png
生成的效果:
9.png
3.在AppDelegate
协议里面添加:
NSLog(@"执行了该段代码");
你会发现那个Target
的都会执行该段代码,可是这并不是我们想要的。
所以我们会在Preprocessor Macros
字段去设置宏来分辨版本。
屏幕快照 2016-12-04 下午11.49.12.png
屏幕快照 2016-12-04 下午11.49.23.png
#ifdef New
NSLog(@"New");
#elif Old
NSLog(@"Old");
#endif
你可以发现当我们运行源版本的时候就算新的target
有问题都可能运行成功。这是比多分支实现多版本分发的优势之一。