在Xcode中组织不同版本的应用程序

我正在开发一个可以编辑图像的iPhone应用程序。 最终,我想要一个小版本,允许用户简单地编辑他们的图像,以及允许图像的社交networking的大版本。 然后我想为iPad开发一个版本。

因为这是我第一次进入商业移动开发领域,所以我对如何在Xcode中组织所有这些版本感到困惑。 显然,每个版本之间都会有文件重用。 我想我的问题是,我怎样才能以最有效的方式组织这些单独的项目,以便共享文件,因此当我编辑共享的特定文件时,会对每个版本的应用程序进行更改? 在XCode中是否存在某种构造?

有没有关于如何去做的链接或文学? (不确定正确的术语来search它)。

记住:如果你发现自己重复/复制某些东西,怀疑你做错了。

在这种情况下,您的Xcode项目将有4个目标。 这个设置的基本目标布局如下所示:

  • 静态库(用于共享源文件)
  • 资源包(用于共享资源)
  • 应用程序完全(通用)
  • App-Lite(通用)

应用程序链接到共享静态库,并复制资源包。

当然,应用程序将有不同的源/库/依赖关系 – 那些应用程序目标(或其他依赖)。

考虑到你的背景:计划需要花费大量的时间(最初和当你走),并耐心地弄清楚如何组成,使用和维护这些依赖关系。

我build议保持“精简”和“完整”的项目分开,但在同一个工作区内。 这样,您可以将共享文件保存在一个项目中,只需在另一个项目中使用共享文件即可。 从任一项目对共享文件所做的所有更改都会影响到这两者。

就iPhone / iPad版本而言,我也build议您将这些应用程序完全分开,但在同一工作区内(以便它们可以共享代码)。 如果您在单个项目(即通用应用程序)中查看pipe理这两个应用程序的build议,唯一真正的好处是客户可以购买一个应用程序,并可以在任一设备上下载应用程序,有些应用程序可能会不高兴可用于他们。 如果你的应用程序是免费的,不要担心。

最后,关于工作区的警告,您需要在所有项目中唯一地命名文件。 例如,如果您正在使用一个使用MainViewController.h子类的项目和使用MainViewController.h子类的另一个项目,则无论您在哪个项目中,都可能意外地分配或编辑错误的项目,因此请小心。 如果使用唯一文件名是一个问题,您可以通过简单地创build一个空项目来转储所有共享代码,然后从那里添加对独立应用程序的引用,从而绕过使用工作空间。

如果您select为不同的function保留不同的项目副本,最终会导致混淆,因为XCode为您提供了一个而不是另一个的地方。 一个这样的地方是 – 当你从地点X打开一个项目时,它会从上次打开它的位置Y向你显示你的副本。 因此,你可能会犯更多的错误。 主办单位是一个可以犯错误的地方。

XCode足以保持iPhone和iPad的版本。 如果您select通用作为应用程序的types,您将有两个单独的故事板可以成为一个项目的一部分。

至于各种function,你不应该保持你的项目的单独副本。 相反,推荐的方法是保持单个项目中的所有function,并通过应用程序逻辑提供对各种function的访问。

当您点击项目时,XCode会在“目标”部分下保留您的版本。 要通过开发周期维护多个版本,请使用源代码库(git或svn)。