如何在iOS团队开发中管理共享资源?

时间:2014-04-09 03:05:57

标签: ios objective-c xcode version-control

我正在开始一个新的小型学习项目,我将和一位朋友一起工作。我们将在同一个项目上工作,但在不同的部分。有时我们需要修改常见的文件。

我的问题是:你们是如何管理这类项目的?我最关心的是故事板文件和其他一些共享资源。

任何建议都会很棒!

2 个答案:

答案 0 :(得分:2)

你可以在这里做很多事情而不是所有的都是绝对的,所以这里有一些我的意见。

  1. 使用Git。最简单的方法是使用像github或bitbucket这样的服务。

  2. 每个人都应创建新分支,以便为特定更改/功能的所有提交进行分组,然后将功能分支合并到您的发布分支中。

  3. 有一个好的gitignore,here is github's objective-c gitignore作为例子。

  4. 如果您的团队成长或者您很有可能同时处理相同的作品,请不要使用故事板或xib。当你遇到合并冲突时,这些都是非常糟糕的,并且通常不会与多个人一起工作。我建议使用autolayout或不使用autolayout来设置代码中的所有UI。根据我的经验,这也使UI更容易调试,重构和更新。

答案 1 :(得分:1)

@Dima提到NIB文件很难合并,这也适用于项目文件。解决这个问题的一些方法:

  1. 提前布置整个文件和类结构
  2. 让团队中的一名成员负责维护项目结构,如果有人想添加/移动/重命名文件,他们就会得到“项目主人”来做这件事
  3. 将应用划分为一系列不同的静态库项目,并为每个
  4. 分配一个人

    使用静态库是非常比其应该更难的事情之一,但是一旦你找到了对XCode的构建设置的模糊更改的正确组合,一切都很好。

    简而言之,你需要

    1. 在静态库中将“skip install”设置为YES,并将所有头文件设为公共
    2. 在使用库的任何项目中,将其链接到“构建阶段”并添加标题搜索路径,以便它知道在哪里查找头文件。
    3. 逐步查看以下链接:

      您还可以使用像CocoaPods这样的依赖关系管理系统来自动执行某些静态库配置和构建。见here

      最后,这个answer也有一个有趣的方法来避免xcproject冲突:指示git“永远联合”合并。我自己没试过。