【问题标题】:Xcode: How to handle many slightly different targets/apps based on the same source codeXcode:如何处理基于相同源代码的许多略有不同的目标/应用程序
【发布时间】:2012-09-22 08:00:02
【问题描述】:

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

现在我们开始获得一些关注,在 Xcode 主项目中拥有大约 20-30 个不同的方案和目标变得有点烦人 - 而且让同事修改它很痛苦,因为它现在往往会破坏事情然后。

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

我想到的一些想法:

  • 有一个单独的 Xcode 项目并...
    • ...使用框架/库导入“基本代码”。
    • ...将“基础代码”添加为项目(依赖项?)

不确定这里的最佳做法是什么;理想情况下,项目代码和客户应用程序目标的配置应该有明确的分离。更理想的是,这将是由同事维护的,不会有意外破坏基本代码的风险。

有什么想法/想法/建议?

【问题讨论】:

    标签: xcode targets


    【解决方案1】:

    这取决于用例。您是否需要发布(存档)同步部署的目标?还是这些客户端定制是独立发布的?开发团队有多大?

    无论哪种方式,实际上只有几个选择。

    选项 1

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

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

    选项 2

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

    选项 3

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-17
      相关资源
      最近更新 更多