将项目划分为多个Xcode项目文件

时间:2010-10-14 00:20:54

标签: objective-c cocoa-touch xcode

我一直在研究的iPad项目已经变得臃肿,有大量的文件。该应用程序是一个原型,我们正在考虑在重写它时防止这种情况的方法。

我们团队的一名成员建议将所有组件划分为单独的Xcode项目,这些项目将包含在主Xcode项目中。

这是个好主意吗?如果有的话,避免将功能/组件/控件划分为单独的Xcode项目有什么原因?

5 个答案:

答案 0 :(得分:2)

您可以将辅助项目文件添加到Xcode中的主项目文件中。只需选择“添加文件”并添加即可。当Xcode构建主服务器时,它将根据需要构建子服务器。

我使用类似的系统。我经常将项目分解为子项目,这样我就可以专注于并强制执行封装。我首先编写数据模型,然后添加app委托,然后添加特定的UI元素。我依次将每个项目添加到下一个项目。这也让我可以回过头来改变一切,而不会有太大的破坏风险。

真的,一个设计合理的objective-c app应该很容易分解成多个项目。理想情况下,所有组件都是如此封装,以至于它们不需要任何其他组件来保存数据模型。

答案 1 :(得分:2)

我们已经将一些代码放在它自己的项目中,构建了一个我们在其他一些项目中链接的框架。有时很烦人,你不会立即在另一个项目中看到框架代码的实现文件(通过cmd + click或cmd + shift + D,或者你通常导航的任何东西)。 Xcode只会显示标题,你必须打开另一个项目并手动找到你的文件。没什么大不了的,但是如果你经常查看代码,那就会打扰你。

一个真正的问题是你改变了某些操作的范围。像“在项目中查找”这样的东西可以在不同的文件集上工作,有时可能不是你想要的(试图找到这个方法被称为/ key在你的整个代码中使用的地方,或者其他东西);好吧,还有Finder / find,所以它可能没问题。重构不是 - 所有重命名的东西都会中断,因为它只会改变当前项目的代码,而不会改变引用这个代码的项目。如果经常更改接口,最好避免拆分项目。

一件好事是,您的.xcodeproj文件(如果存储在共享存储库中)的冲突会减少,因为从项目X中删除文件的人不会与其他人在项目Y上添加目标产生冲突,以前哪个.xcodeproj(不完全确定这是一个冲突的情况,但肯定有一些)。

答案 2 :(得分:1)

现在使用Xcode4,您可以创建一个工作区并在那里添加所有项目。仅用于文档目的:)

答案 3 :(得分:1)

要查看和修改子项目实施文件,您应该将子项目直接添加到主项目中。

1步 - 将.xcode项目文件拖放到主项目中。

2步 - 转到主项目TARGETS - >建立阶段。在Tar​​get Dependencies中添加子项目目标。您还可以在Link Binary With Libraries中添加二进制文件。

3步 - 将子项目源路径添加到主项目标题搜索路径。 转到主项目 - >构建设置 - >标题搜索路径(例如$(SRCROOT)/../ CoconutKit-master / CoconutKit / Sources)

答案 4 :(得分:0)

Xcode项目中可以包含任意数量的构建目标,您可以随意将源文件分组到文件夹中。是什么让你认为有必要进行多个项目?