使用Xcode 4,主项目+共享代码项目的正确方法是什么?

时间:2012-05-04 18:41:35

标签: iphone objective-c ios xcode cocoa-touch

目前我有一个只有一个大型项目的iPhone应用程序。它有数百个代码文件。我有一个名为“Helper”的文件夹,其中包含我创建的所有类。我将要制作第二个应用程序,它还需要使用“Helper”文件夹中完全相同的代码。

在两个项目/应用程序之间共享“Helper”代码的正确方法是什么?我应该将它放在自己的项目文件中,然后将主app +“Helper”添加到一个公共工作区吗?我对制作静态库或其他任何东西都不感兴趣......我只是想以某种方式隔离代码。

我已经尝试制作第二个“空白”项目文件并将代码拖入其中,但是当我尝试构建Xcode时,我认为我现在缺少头文件...由于某种原因,它没有看到代码另一个项目。

4 个答案:

答案 0 :(得分:1)

如果共享代码与当前应用程序独有的代码之间存在明确的区别,那将是理想的选择。如果还没有,请尝试确保将要共享的所有内容都不依赖于项目特有的代码。

您可以通过使用Git Repo然后使共享代码成为自己的repo项目来实现此目的。然后,在两个项目的repo中,将辅助代码包含为子模块。

我曾经使用过使用子模块的项目,尽管我还没有自己设置子模块方面。这样做的好处是,您对“帮助者”所做的任何更改都可以拉入这两个项目,因此更改会同步。

如果您还不熟悉Git,我建议您熟悉。即使您没有与他人合作,在您的计算机上设置Git仓库也非常有用。 XCode目前提供了在创建项目时设置repo的选项。如果你没有这样做,或者不确定,你仍然可以在事后创建一个回购。

我使用源树来管理我的存储库。从那里SourceTree创建一个回购非常简单易行。但是,如果您愿意,可以使用GitHub自己的桌面客户端或任何其他客户端 - 具体取决于您设置项目的方式。

有关在git中设置子模块的一些信息:Setting up a submodule

所以,回顾一下:

  1. 确保您的“帮助”代码可以独立存在
  2. 将帮助程序代码放入自己的仓库
  3. 将帮助程序repo 作为子模块包含在您想要代码的任何项目中。
  4. 希望有所帮助!

答案 1 :(得分:1)

在我看来,您所描述的情况正是框架旨在解决的问题。您最终可能会做的是创建另一个项目,其中包含您的所有共享代码,并创建一个应用程序可以链接的框架。

我建议阅读Apple的Framework Programming Guide。从导言的介绍:

  

Mac OS X广泛使用框架来分发共享代码和资源,例如系统本身的接口。您可以创建自己的框架,为您公司的一个或多个应用程序提供共享代码和资源。您还可以创建包含类库或附加模块的框架,以便将它们分发给其他开发人员。

答案 2 :(得分:0)

您可以将共享代码放在单独的文件夹中,然后将其添加到这两个项目中。 但请不要忘记将文件夹的路径添加到User Header Search Paths中的Build Settings > Search Paths

答案 3 :(得分:0)

  

我对制作静态库或其他任何东西都不感兴趣......

然而,对于iOS,静态库目标正是您所使用的。

不需要工作空间,只需要一个具有该共享静态库的单独Xcode项目,这两个应用程序都会引用它。