iOS项目之多Targets和多环境配置

Posted sjxjjx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS项目之多Targets和多环境配置相关的知识,希望对你有一定的参考价值。

  项目中使用的同一套代码,但需要开发多个app,app中内容基本上相同,只有一些小小的区别,例如名称等等,每个app中又需要分开发环境(Dev)、测试环境(Test)、正式环境(Pro)。

  下面就开始搭建这样的配置:

  第一步,对目标target进行复制(Duplicate)

        技术图片

  如果当前项目为iPhone项目的话,会出现下面的提示

    技术图片

  这里只需要复制iPhone项目,所以选择 “Duplicate Only”。

  此时在项目中会增加两个东西:

    技术图片

  为了便于区分,这里对相应target和plist进行重命名,修改后如下图:

    技术图片

  第二步,对target重新配置plist文件  技术图片  

  第三步,新增配置环境

    技术图片

  这里添加开发、测试、正式三个环境,最终效果如图

    技术图片

  第四步,新增Scheme,用来配置环境,这里直接选择Manage Schemes进行设置

    技术图片

  在设置界面新增Scheme,选择相应的target,并设置Scheme的名称

    技术图片

  勾选需要显示的Scheme

    技术图片

  分别对不同的Scheme进行配置    技术图片

  第五步,新增自定义设置

    技术图片

  配置不同的bundleIdentifier和bundleName

    技术图片

  修改info.plist文件中的bundleIdentifier和bundleName

    技术图片

  对TargetTwo进行重复以上操作

    技术图片

  第六步,添加环境变量参数

    技术图片

  TargetOne项目的环境变量参数设置为:dev=1,test=2,pro=3

    技术图片

  TargetTwo项目的环境变量参数设置为:dev=4,test=5,pro=6

    技术图片

  第七步,分别设置pch文件和环境配置文件

    技术图片

  在环境配置文件中可以设置不同的BASE_URL之类的参数等等

  分别在不同的target中设置pch文件的引用

    技术图片

  第八步,配置Podfile文件 

platform :ios, 9.0 

def normalPod

  pod MJRefresh
  pod AFNetworking

end

def otherPod

  pod Masonry

end

target TargetOne do 
   normalPod
end 

target TargetTwo do 
  normalPod 
  otherPod
end 

  可参考以上代码,根据自己的需要进行修改,然后 pod install 

  第九步,设置不同的Assets.xcassets和LaunchScreen.storyboard等,在不同target中有差异的文件(因项目而异)

    技术图片

  这里以 Assets.xcassets 为例:

  选择该文件后,可以在右侧的 Target Membership 中进行勾选需要在哪个target中使用。如果需要区分的话,再新增一个 Assets 文件,分别引用到不同的 target 中就OK了。

  大功告成,看看效果吧:

  技术图片

 

技术图片

   GitHub:https://github.com/sjxjjx/TargetsAndEnvironments

以上是关于iOS项目之多Targets和多环境配置的主要内容,如果未能解决你的问题,请参考以下文章

iOS之深入解析多环境配置的实现方案

iOS项目——项目开发环境搭建汇总

详解Spring Boot配置文件之多环境配置

SpingBoot之多Profile文件

iOS项目——微信H5棋牌牛牛斗牛出租平台项目开发环境搭建教程

iOS Framework/SDK 导出脚本配置(含脚本)(.Framework)