美文网首页iOS开发
iOS同一个Project构建多Target

iOS同一个Project构建多Target

作者: 刘是丑 | 来源:发表于2016-04-15 11:48 被阅读3066次

    版权声明:本文为博主原创文章,未经博主允许不得转载。

    最近产品线规划后,为了避免使用git维护多个分支所带来的高昂代价,需要在项目中引入多Target机制,即一个Project同时管理多个Target,达到git管理一个分支就可以开发多个产品的目的。

    • 如何创建多个Target
      1.通过File-->New-->Target,选择Empty Application模板,不过新建的target有自己的AppDelegate和main,如何与原来的AppDelegate和main复用需要进一步研究;

      2.选择一个原有的target,右键选择Duplicate,就会生成一个新的target。

    • 使用第2中方法生成target创建多个target之后的配置
      1.首先需要区分不同的target的名称,直接双击更改;

      2.Product->Schemes->Manage Schemes...弹出的面板中,将新建的target工程最后面那个shared按钮给勾上,就可以把自己的设置共享给团队的其他成员;

      3.多个target需要设置不同的Build Phases->Link Binary With Libraries/Copy Bundle Resources/Embed Frameworks,不同的target可能需要依赖不同的资源和静态库等;

      4.新建的Files或者资源等注意勾选需要添加到的target;

      5.新建target之后会自动生成xxInfo.plist文件,其所在文件夹默认在工程的最外层目录,根据情况是否需要更新期所在位置;

      6.工程中的InfoPlist.strings可以用来设置应用的多语言名称,同一个Project多target状态下使用InfoPlist.strings文件时,需要注意,不是生成多个不同名的xxInfoPlist.strings,而是需要在Resources->Strings多设置一层文件目录,有多少个target就生成几个文件夹,在每个文件夹中使用同名的InfoPlist.strings文件名,在第4点中Copy Bundle Resources中都添加InfoPlist.strings依赖;

      7.图片资源的images.xassets也需要根据不同的target设置多个,可以实现不同的target使用不同的AppIcon和LanuchImage等图片资源;

      8.如果两个target的相同点很多,用Duplicate,就可以把相关的设置全部拷贝过来,而不需要做过多的修改。

    • target之间会有各种区别,可以定义预编译宏,来区的不同target需要执行的不同代码,预编译宏可以在Build Settings>Preprocessor Macros(全局宏)定义,例如在target 1的Preprocessor Macros中设置TEST 1,target 2的Preprocessor Macros中设置TEST 2,在代码中可以使用

    #ifdef TEST 1
    // target 1 需要执行的代码
    #elif  TEST 2
    // target 2 需要执行的代码
    #endif
    

    相关文章

      网友评论

        本文标题:iOS同一个Project构建多Target

        本文链接:https://www.haomeiwen.com/subject/usknlttx.html