36

我不明白如何使用 Xcode 工作区来组织相互依赖的项目。例如,我看到很多开发人员创建的工作区结构如下所示:

工作区
|-- 应用
|-- 通用库
|-- 另一个公共库

这有什么好处?如果有人直接打开“App”项目,他们不会无法实际构建应用程序吗?他们必须意识到工作空间的存在具有必要的依赖关系。

在我看来,更好的方法是使用这样的嵌套项目:

应用程序
|-- 图书馆
| |-- 通用库
| |-- 另一个公共库

则不存在无法构建的项目。它似乎也更符合 Git 的子模块理念。

我看到的工作空间的唯一用途是对不相互依赖的通用项目进行分组。我想听听其他人对此的看法,因为我可能遗漏了一些东西。

4

2 回答 2

20

当我想组合项目同时保持项目独立性时,我会使用工作区。

我使用工作区的一个例子是一系列教程项目,这些项目从非常简单到更复杂。每个项目都可以作为一个独立的项目运行,但是将它们组合在一个工作区中有助于我组织整个项目。

在另一个例子中,我有一个为客户开发的应用程序。该应用程序既可以作为独立应用程序,也可以作为整个项目中的模块使用。独立项目可以构建独立应用程序。另一个应用程序使用包含两个项目的工作区。应用程序的模块版本是根据特殊方案构建的,如果不使用工作区,则无法构建此组合应用程序。

上述两种情况的一个转折点是构建文件夹的存储位置。我必须更改 Xcode 首选项以将构建产品放入教程项目组的唯一文件夹中,在其他应用程序设置中为模块使用通用构建文件夹。

在其他情况下,我有很多带有嵌入式项目的项目。在这些情况下,图书馆项目是稳定的。我不尝试进一步开发图书馆项目,因此它们只是该项目的另一种资源。我发现在我的项目资源的文件系统组织在某种程度上反映了我的 Xcode 项目的组织的情况下,工作起来更容易。所以这些库项目被复制到主项目的文件层次结构中。如果我正在开发库并在多个项目中使用它们,那么使用工作区是有意义的。为了方便起见,我经常不打扰。

有时我什至将工作空间与包含嵌入式项目的项目结合起来。

所以我的观点是,无论是组织工具、嵌入式项目还是工作空间,都有其优点和问题。我根据具体情况选择使用其中一种(或组合)。

于 2012-07-23T19:30:35.650 回答
1

我们将嵌套项目添加到主项目的框架中,因此我们可以将它们“包含”到 .framework 产品中。

Main
|-- Main
|-- MainTests
|-- Frameworks
|   |-- CommonLibrary.xcodeproj
|   |-- AnotherCommonLibrary.xcodeproj
|   |-- UIKit.framework
|   |-- Foundation.framework
|   |-- CoreFoundation.framework
|-- Products

请参阅Jeff Verkoeyen的这篇很棒的教程,了解如何将通用框架添加到项目中。一开始并不容易,但继续努力,你就会掌握它的窍门。

于 2014-08-19T20:44:57.910 回答