前端时间公司有这样的需求,为了区分渠道推广,我们app需要创建个渠道版,其实和正式版基本是没有区别的,只是对于开发人员需要区分不同版本,但是一切的一切对用户是透明的,所以研究了下,参考了下一些文章,整理个简单详细的版本,也便于自己记忆。
首先,强调下使用场景是,版本之间的差异很小,需要共享大量资源
1,比如如下是我们的正式版本,我们需要在这个progect下面再创建一个target,从而实现资源共享和互异。
图12,右键TARGETS下面的Demo_多个target,选择Duplicate
图2如果有如下提示的话,选择Duplicate only,如果没有的话,就直接复制了一个target
图3生成如下
图43,单击target的名字,进行修改
图5在这里,我把分支版本命名为Demo_branch
除此之外,还有几个地方需要修改
(1)
图6 图7(2)在桌面创建一个名字为Demo_branch的文件夹,拖入工程中
图8(3)把创建分支版本target时生成的plist文件拖到Demo_branch文件夹中,并改名为Demo_branch.plist
图9(4)重新选择Demo_branch.plist文件的位置
图10选择完成后可能没有反应,此时你点一下别的页面,再回来就OK了,效果如下图
图11至此,分支版本就创建成功了,选择不同的target运行不同的程序
图12此时两个版本的资源是一样的,如果我们要有所区别,可以用一个宏定义来区分
4,在TARGETS选择Demo_branch-->BuildSettings-->Preprocessor Macros给debug和release模式添加一个参数
图13标记好后就可以在需要差异化资源的地方用这个宏定义了
#ifdef Demo_branch
#else
#endif
图14嗯嗯,这就差不多了,资源也可以差异化使用,分支版本的启动页,icon,bundleID都可以用自己的,完全是独立的。