ios使用targets来构建大量相似App

在实际开发过程中,当您遇到你们公司的APP开发的项目内容有很多相似的地方,可能区别在于就是某几个界面UI的差异性,这个时候我们就可以采用Target的方式来在一个项目里面创建多个target,这样的好处在于如果您遇到了bug不用去每一个项目里面更改(某些不是公共的方法除外),还有就是我们经常会遇到对同一个app开发多个版本(Pro、Lite、Free)的情况,看到唐巧的文章猿题库也使用多target来构建大量相似App,这里就涉及到xcode里通过添加多个targets来进行版本控制的问题了,下面就简单给大家介绍下

创建target

  • 点击左侧的工程名称,右侧会出现PROJECT和TARGETS,点击你现在的target,假如叫A,右键弹出菜单中,选择Duplicate,复制一个相同的target,复制的target一般叫A copy,A copy和A的设置(编译条件、源文件、资源文件)完全一样,此时你可以根据需要修改A copy的编译条件和资源文件了
ios使用targets来构建大量相似App_第1张图片
Paste_Image.png

创建后的target

ios使用targets来构建大量相似App_第2张图片
Paste_Image.png
  • 在项目配置里面创建target,并修改成独立的名字。Xcode也会自动帮我们创建对应Info.plist文件,记得在对应的Target配置里面 在Info.plist File修改为刚刚自己写的名字
ios使用targets来构建大量相似App_第3张图片
Paste_Image.png

修改target的名称

  • 点击xcode左上角Run、Stop右边的工程名称,下拉框中选择Manage Schemes,在弹出框中,点击A copy那行,点击一次、再点击一次,就可以修改A copy为你想要的名字了,比如 Pro;

  • 修改info.plist文件内容,如应用名称,版本号等等


    ios使用targets来构建大量相似App_第4张图片
    Paste_Image.png

targets通过预编译宏来区分

当多个target创建好后,你添加资源文件的时候,通过选择添加的target来控制不同版本的内容,当你在公共的代码片段内做不用targets不用的操作(如:target1的环境地址和target2的环境地址不一样)————预编译宏可以帮到您,再说一下预编译宏的事情:target->Build Setting

ios使用targets来构建大量相似App_第5张图片
Paste_Image.png

搜索:Preprocessor Macros,设置Debug和Release里的预编译宏内容,比如DEV_VERSION=1表示Target1版本(注意=前后不能右空格,有空格会编译不过,名称可以自己定义),程序中对不同版本这样判断:

    #if DEV_VERSION ==1
    ...
    #elif DEV_VERSION ==2
    ...
    #endif
ios使用targets来构建大量相似App_第6张图片
Paste_Image.png

参考文档:
唐巧的文章猿题库iOS客户端的技术细节(一):使用多target来构建大量相似App

外文篇http://www.appcoda.com/using-xcode-targets/

你可能感兴趣的:(ios使用targets来构建大量相似App)