当我想组合项目同时保持项目独立性时,我会使用工作区。
我使用工作区的一个例子是一系列教程项目,这些项目从非常简单到更复杂。每个项目都可以作为一个独立的项目运行,但是将它们组合在一个工作区中有助于我组织整个项目。
在另一个例子中,我有一个为客户开发的应用程序。该应用程序既可以作为独立应用程序,也可以作为整个项目中的模块使用。独立项目可以构建独立应用程序。另一个应用程序使用包含两个项目的工作区。应用程序的模块版本是根据特殊方案构建的,如果不使用工作区,则无法构建此组合应用程序。
上述两种情况的一个转折点是构建文件夹的存储位置。我必须更改 Xcode 首选项以将构建产品放入教程项目组的唯一文件夹中,在其他应用程序设置中为模块使用通用构建文件夹。
在其他情况下,我有很多带有嵌入式项目的项目。在这些情况下,图书馆项目是稳定的。我不尝试进一步开发图书馆项目,因此它们只是该项目的另一种资源。我发现在我的项目资源的文件系统组织在某种程度上反映了我的 Xcode 项目的组织的情况下,工作起来更容易。所以这些库项目被复制到主项目的文件层次结构中。如果我正在开发库并在多个项目中使用它们,那么使用工作区是有意义的。为了方便起见,我经常不打扰。
有时我什至将工作空间与包含嵌入式项目的项目结合起来。
所以我的观点是,无论是组织工具、嵌入式项目还是工作空间,都有其优点和问题。我根据具体情况选择使用其中一种(或组合)。