您的当前位置:首页正文

iOS Xcode一个progect下创建多个target

来源:华拓网

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

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

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

图1

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

图2

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

图3

生成如下

图4

3,单击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都可以用自己的,完全是独立的。