iOS Xcode一个progect下创建多个target

      前端时间公司有这样的需求,为了区分渠道推广,我们app需要创建个渠道版,其实和正式版基本是没有区别的,只是对于开发人员需要区分不同版本,但是一切的一切对用户是透明的,所以研究了下,参考了下一些文章,整理个简单详细的版本,也便于自己记忆。

      首先,强调下使用场景是,版本之间的差异很小,需要共享大量资源

1,比如如下是我们的正式版本,我们需要在这个progect下面再创建一个target,从而实现资源共享和互异。

iOS Xcode一个progect下创建多个target_第1张图片
图1

2,右键TARGETS下面的Demo_多个target,选择Duplicate


iOS Xcode一个progect下创建多个target_第2张图片
图2

如果有如下提示的话,选择Duplicate only,如果没有的话,就直接复制了一个target


iOS Xcode一个progect下创建多个target_第3张图片
图3

生成如下


iOS Xcode一个progect下创建多个target_第4张图片
图4

3,单击target的名字,进行修改


iOS Xcode一个progect下创建多个target_第5张图片
图5

在这里,我把分支版本命名为Demo_branch

除此之外,还有几个地方需要修改

(1)

iOS Xcode一个progect下创建多个target_第6张图片
图6


iOS Xcode一个progect下创建多个target_第7张图片
图7

(2)在桌面创建一个名字为Demo_branch的文件夹,拖入工程中


iOS Xcode一个progect下创建多个target_第8张图片
图8

(3)把创建分支版本target时生成的plist文件拖到Demo_branch文件夹中,并改名为Demo_branch.plist


iOS Xcode一个progect下创建多个target_第9张图片
图9

(4)重新选择Demo_branch.plist文件的位置


iOS Xcode一个progect下创建多个target_第10张图片
图10

选择完成后可能没有反应,此时你点一下别的页面,再回来就OK了,效果如下图


iOS Xcode一个progect下创建多个target_第11张图片
图11

至此,分支版本就创建成功了,选择不同的target运行不同的程序


iOS Xcode一个progect下创建多个target_第12张图片
图12

此时两个版本的资源是一样的,如果我们要有所区别,可以用一个宏定义来区分

4,在TARGETS选择Demo_branch-->BuildSettings-->Preprocessor Macros给debug和release模式添加一个参数


iOS Xcode一个progect下创建多个target_第13张图片
图13

标记好后就可以在需要差异化资源的地方用这个宏定义了

#ifdef Demo_branch

#else

#endif


iOS Xcode一个progect下创建多个target_第14张图片
图14

嗯嗯,这就差不多了,资源也可以差异化使用,分支版本的启动页,icon,bundleID都可以用自己的,完全是独立的。

你可能感兴趣的:(iOS Xcode一个progect下创建多个target)