Xcode:如何根据相同的源代码处理许多略有不同的目标/应用程序

时间:2012-09-22 08:00:02

标签: xcode targets

对于我们公司的某个产品,我们需要生成略有变化的iOS应用程序(不同的徽标,Info.plist中略有不同的设置等);但基本上它们都基于相同的源代码。

现在我们开始获得一些牵引力,在主Xcode项目中拥有20-30个不同的方案和目标变得有点烦人 - 再加上让同事修改它是一件痛苦的事情,因为它现在往往会破坏它然后。

不幸的是,我对Xcode的内心不太熟悉;但我很确定其他人之前已经解决了这个问题。

我想到了一些想法:

  • 有一个单独的Xcode项目......
    • ...使用Framework / Library导入“基本代码”。
    • ...将“基本代码”添加为项目(依赖关系?)

不确定这里的最佳做法是什么;理想情况下,项目代码和客户应用目标的配置会有明显的分离。更理想的是,这可以由同事维持,而不会有意外违反基本代码的风险。

任何想法/想法/建议?

1 个答案:

答案 0 :(得分:0)

这取决于用例。您是否需要释放(存档)同步部署的目标?或者这些客户端自定义是否可以独立发布?开发团队有多大?

实际上只有几种选择。

选项1

将产品作为单独的目标进行管理。这基本上就是你现在正在做的事情。你可以设置它,以便构建一个目标来构建它们以节省一些痛苦。这里的主要缺点是您分别管理图像/ plist数据。

这是我通常处理它的方式。自定义通常是一次性的,你可以指定一个不同的预编译头来改变一些功能差异。

选项2

将产品作为CVS中的单独分支进行管理。这可能有点令人头疼,但如果有更大的团队在代码库中工作,那么效果会更好。将功能代码保留在一个分支上。为每种产品维护一个独立的分支机构。根据需要将功能分支的更改合并到产品分支中。

选项3

将产品管理为单独的子项目。这与选项1非常相似,因为您仍然需要单独维护设置,但优点是在更改项目文件的基础xml时不太可能搞乱其他产品。

要考虑的因素是开发团队的规模以及团队的现有工作流程。