封面.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有问题都可能运行成功。这是比多分支实现多版本分发的优势之一。














网友评论