3

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

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

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

4

4 回答 4

1

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

我建议阅读 Apple 的框架编程指南。从介绍到指南:

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

于 2012-05-04T19:01:00.150 回答
1

如果共享代码和当前应用程序独有的代码之间有清晰的区别,那将是理想的。如果还没有,请尝试确保将共享的所有内容不依赖于项目唯一代码中的任何内容。

实现此目的的一种方法是使用 Git 存储库,然后将共享代码作为自己的存储库项目。然后,在两个项目的 repo 中,将帮助代码作为子模块包含在内。

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

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

我使用源代码树来管理我的存储库。从SourceTree创建一个 repo 非常简单和容易。但是,您可以使用 GitHub 自己的桌面客户端,也可以根据需要使用任何其他客户端 - 取决于您如何设置项目。

关于在 git 中设置子模块的一些信息:设置子模块

所以,回顾一下:

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

希望有帮助!

于 2012-05-04T18:55:59.507 回答
0

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

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

不需要工作区,只需一个带有共享静态库的单独 Xcode 项目,两个应用程序都引用该库。

于 2012-05-04T19:05:46.123 回答
0

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

于 2012-05-04T18:57:19.337 回答