我有 4 个 iOS 应用程序,它们都很相似。它们是闪存卡应用程序,每个应用程序都有不同的主题。他们共享很多课程和图像。现在我将所有 4 个项目作为单独的项目,但我希望简化维护并共享资源。将所有 4 个项目放在同一个工作区中更好,还是将 4 个目标放在一个项目中更好?每种方法有哪些优点/缺点?他们看起来很相似。
这是 Marty 发布的 PDF 的摘录。这是一个很棒的文档,但是 4.4MB,很多人下载后可能会下线;)
将多个目标放在一个项目中的权衡
通过考虑所涉及的一些权衡,您可以帮助确定是否将许多或所有目标放入一个项目中。以下是在一个项目中组合多个目标的一些优点:
以下是将所有目标放在一个项目中的一些缺点:
所有使用该项目的个人或团队都可以看到所有代码,即使他们只处理一个目标或整个项目的一小部分。
项目规模可能变得难以控制;这可能会导致 Xcode 花费很长时间来执行索引等操作。
所有目标必须使用相同的 SCM 系统。
所有目标必须使用相同的 SDK 构建。
您无法使用 Xcode 调试器同时调试一个项目中的两个可执行文件。
使用多个项目的权衡
将软件产品分解为多个项目和目标也需要权衡。以下是使用多个项目的一些优点:
您可以使用项目作为一个单元,在不同的个人或团队之间划分工作。单独的项目允许您隔离代码(例如,限制对机密信息的访问)。
每个项目的大小都可以更易于管理,并且 Xcode 可以更快地执行索引、构建和其他操作。
如果项目需要共享输出,它们可以构建到一个公共目录中,如 Xcode 项目管理指南中的“构建位置”中所述。
您可以使用跨项目引用来构建当前项目所需的其他项目。
每个项目都可以使用存储在不同SCM系统中的源代码。然而,如果个人可以物理访问其他项目,仍然可以查看使用同一 SCM 系统的多个项目的 SCM 信息。
每个项目可以使用不同的SDK。
每个项目都可以定义单独的构建配置列表。
您可以使用调试器同时调试两个或多个可执行文件,每个项目中一个。当产品直接通信或以其他方式交互时,这非常有用。
以下是拥有多个项目和目标的一些缺点:
您没有跨项目索引,因此您只能访问其他项目专门公开的符号。例如,这意味着您无法自动查找其他项目中的定义,除非您可以物理访问它们(而不仅仅是其最终产品)。同样,您无法充分利用依赖于索引的其他功能。这包括使用代码完成、使用 Command 双击跳转到定义、重构以及使用符号对应项。
-
许多较小项目的管理可能会产生额外的开销。例如,要设置依赖于多个项目中其他目标的目标,必须首先设置跨项目引用。
同样,使用多个项目可能需要团队之间进行额外的沟通。
对于处理多个项目的个人来说,在许多打开的项目之间切换可能会变得很麻烦。不过,使用管理器可以缓解此问题(有关详细信息,请参阅使用管理器)。
单个项目较小,不太可能利用分布式构建。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)