来自一个代码库的多个应用程序 - Xcode中的多个项目或目标?

时间:2013-06-21 09:51:06

标签: ios xcode

我正在开发一款iOS应用。现在它是一个应用程序和两个目标(应用程序和测试)。

接近发布我想将此应用分成三个包含大量共享代码和共享测试的应用。 (想想App Store的免费版和完整版以及不会发布的原型应用程序。)

您是否会在Xcode(1个图书馆项目和3个应用项目)中设置多个项目,或者将所有项目保存在一个项目中并且只设置多个目标?

2 个答案:

答案 0 :(得分:19)

我认为你在这里至少有3个选择:

  1. 单独的项目。跨项目共享代码更加困难,但使用Xcode工作区这是非常可行的。如果您为每个项目进行了大量自定义,那么这可能是有意义的。

  2. 相同项目,更多目标。这是通常的方法。这很简单,因为您可以非常简洁地了解哪些文件进入哪个目标。如果你有十几个目标,那么它真的很容易处理。

  3. 单独的git分支。我过去曾与此合作过。应用程序(Info.plist,配置文件,数据文件)之间的差异只是在相应的git分支中交换。如果您拥有大量数据并且不需要始终提供所有数据,那么这是实用的。但是,如果你不熟悉它,那么git的复杂性是相当大的。您可以创建git子模块一次更改共享代码部分。

答案 1 :(得分:2)

我建议您根据您的需求使用混合方法

  • 如果需要多个应用程序-创建Target,这正是它们的用途。您可以使用Target Membership [About]

    处理共享文件
  • 如果您有可分为模块的源代码,请在Project内创建其他Workspace(用于共享源)。 CocoaPods使用了该技术

[Xcode Workspace vs Project]
[Xcode components]