如何管理多个非常相似的Xcode项目的代码

时间:2015-04-22 16:11:50

标签: objective-c xcode git

Greetings Stackoverflow社区,

我承担了统一'的任务。 4个移动iPhone应用程序共享95%的代码,仅相差5%(这有点过分简化,但没关系)。每个应用程序都有自己的大量资源(媒体文件)。

统一' 4个应用程序,我将为应用程序添加新功能,主要是应用程序将共享的功能。

我很高兴听到您对管理这些应用程序代码的最佳方式的看法。这是我现在采取的方法。

  1. 我只维护一个包含所有4个应用程序功能的Xcode项目。所有应用程序之间未共享的功能包含在以下条件中:if(appName ==' X')...

  2. 每个应用都有自己的info.plist文件,所以我有4个这样的文件:infoX.plist,infoY.plist,...

  3. 在构建应用程序之前,我做了两件事: 一个。在Build Settings中,我指定要使用的info.plist的名称。 湾我确保只有应用程序的资源(媒体文件)在项目中。我删除了其他应用程序'资源。

  4. 由于应用程序在代码中的相似度为95%,因此只有#34; One App来统治它们所有"确保在代码升级时,所有应用程序都享受升级。您可以假设应用在代码中保持非常相似。

    作为应用程序'媒体文件很大很多,我将它们从Git存储库中删除。

    这听起来怎么样?

    非常感谢!

2 个答案:

答案 0 :(得分:3)

有更好的方法:

一个。转到框架

这取决于应用程序的常见部分的通用性。但是你应该考虑将它的一部分放在一个框架的单独项目中。您可以将4个应用与该框架相关联。但是,当然,并非一切都会去那里。

B中。有不同的目标

当然,你应该有4个不同的目标。 Xcode允许您为每个项目或每个目标特别设置每个设置的构建设置。此外,您可以在每个目标基础上自定义构建阶段(包括媒体文件的副本)。因此,您不必重命名,删除和插入任何内容。您只需选择要构建的目标。

℃。项目树

Xcode允许您拥有包含公共代码的子项目。也许像你的应用程序的常见“基础”类。您可以在一个工作区中为每个应用程序创建不同的项目,所有项目都使用子项目。

可能最好的方法是组合,取决于主题是什么。但是我会从B.开始,如果需要,可能会添加其他技术。

答案 1 :(得分:0)

我遇到的情况大致相同,我们决定使用一个包含多个目标的Xcode项目。这样,您可以在点击构建按钮之前简单地更改目标(或配置更改目标的特定构建脚本)。在我们的项目中,我们有几个文件共享相同的名称(在不同的文件夹中),并将每个文件与不同的目标相关联。例如,我们有三个" Stylesheet.h / .m"与不同的UIColor& UIFont定义存储在不同的文件夹中,并且每个文件夹都链接到不同的目标。 " Localizable.strings"同样的事情。

相关问题