iOS-一个项目多个Target

现实开发中,我们的项目可能包含 测试版本 和 正式版本

这里有两种方法实现将测试版本和正式版本分开:

  • 一种是用分支(branches),develop branch & official branch
  • 另外一种就是建立多个 Target

Targets 与 Branch 比较

  • 使用 Branch 分支,并不是合适的方式。
    首先,你需要切换到开发分支(Develop branch)解决用户可能发现的bug,解决完那些错误,必须合并更新你的新分支(Official branch),次数多了,会发现这些操作上话费太多的时间

  • 当使用多个 Target 开发时,就不用花费时间在不同的版本上了

  • 所以,更好的方法是使用多个 Target


什么是 Target ?

苹果官方文档描述

A target specifies a product to build and contains the instructions for building the product from a set of files in a project or workspace. A target defines a single product; it organizes the inputs into the build system—the source files and instructions for processing those source files—required to build that product. Projects can contain one or more targets, each of which produces one product.

译:一个 target 指向一个产品,同时包含一套文件作为构建这产品的说明。一个 target 定义了一个 产品;它用于管理系统构造资源文件和那些用于处理那些构造产品资源的请求文件。一个项目可以包含一个或多个 targets, 一个 target 负责一个 产品。

每一个 target 拥有它自己的 .plist 文件,一个 .plist 文件定义了 App 的唯一标识符,版本号等。同时 Target 包含 Xcode 内的 Build Settings 设置文件,像预处理器,宏编译等等。


实现步骤

一、创建项目

  • 创建一个 Project,此时这个 project 只有一个 Target

iOS-一个项目多个Target


二、创建新的 Target,并重命名

  • 点击当前 Target,右键,弹出菜单,选择 Duplicate (Command + D),此时会产生两个文件,一个是新的名为 Target name + copy的 target, 另一个是 Target name + copy-info.plist.plist 文件。

  • 双击给 new target 和 new .plsit 文件重命名

iOS-一个项目多个Target

重命名:

iOS-一个项目多个Target


三、更改新 Target -> info.plist -> Bundle name

  • 选择 新的 info.plist 文件,修改 Bundle name,为项目的发布版名称

iOS-一个项目多个Target


四、修改 Scheme

  • 点击 Scheme, 会出现两个 scheme
  • 选择 Manage Schemes...
  • 在弹出的视图中,轻轻点击新的 scheme 名称,进行修改,改成和新 target 的名称一致即可

iOS-一个项目多个Target

修改 Scheme 的名称:

iOS-一个项目多个Target


五、配置 Build Settings,指定对于的 info.plist 文件

  • 选中新的 Target, 选择 Build Settings
  • 搜索框输入:packaging,找到 info.plist File
  • 双击对于的 Value 值,修改.plist 名称与外面的 .plist 名称一致

iOS-一个项目多个Target


———————- over! ———————–


额外提示: 对于不同的 Target, 需要和不同的证书绑定,我们只需要在各自的 Target -> Build Settings 里面更改不同的证书即可。