我们应该将pod文件提交到版本控制系统(GIT或SVN)吗?

时间:2017-08-09 09:44:01

标签: ios iphone git svn cocoapods

到目前为止,我正在处理一个应用程序,我的团队负责人表示不提交pod文件,我只是按照他的指示操作。

然后我们的Lead改变了,他说要将pod文件提交给Git。所以我很困惑哪一个。

我们是否应该提交pod文件,如果我们不应该提交原因。请帮我澄清这件事,因为我也阅读了一些文章,但没有找到任何满意的答案。

3 个答案:

答案 0 :(得分:22)

您是否签入Pods文件夹取决于您,因为工作流程因项目而异。 建议是您将Pods目录保留在源代码管理下
检查Pods目录的好处

  1. 克隆了repo后,即使没有在机器上安装CocoaPods,项目也可以立即构建和运行。无需运行pod安装,也无需Internet连接。
  2. Pod工件(代码/库)始终可用,即使Pod(例如GitHub)的来源发生故障也是如此。
  3. 克隆回购后,Pod工件保证与原始安装中的工件相同。
  4. 忽略Pods目录的好处

    1. 源代码控制回购将会更小并占用更少的空间。
    2. 只要所有Pod的源(例如GitHub)都可用,CocoaPods通常能够重新创建相同的安装。 (从技术上讲,无法保证在Podfile中不使用提交SHA时运行pod安装将获取并重新创建相同的工件。在Podfile中使用zip文件时尤其如此。)
    3. 3.执行源代码控制操作时不会有任何冲突,例如合并具有不同Pod版本的分支。

      来源:Cocoapods

答案 1 :(得分:10)

我建议&建议,不要在你的Git / SVN存储库中提交pods目录(使用Pod集成的第三方源)。

以下是示例来源,建议您,提交什么,而不是。

enter image description here

  1. Pod是一个依赖管理器,可能包含很多第三方库。您的项目源将变得更重(大尺寸),并且每次新目的地使用它时都会下载它。
  2. 您可以使用来自任何源/目标的命令pod install轻松集成所有Pod库/文件源。
  3. 在不同的系统中可能存在不同版本的SDK,命令行工具和可可pod。它自动处理SDK工具和支持的集成特定库。命令行版本,以及可可pod版本。
  4. 注意:可以将带有源代码的pod文件提交给Git / SVN。但是,使用您的代码添加(第三方库)依赖项并不好,这在​​不同目的地(系统)上使用pod并不是必需且易于处理的。

答案 2 :(得分:1)

如果您使用的是local development pods,那么如果您不提交Pods存储库,就会遇到一个令人烦恼的问题。

假设您正在处理分支,并将文件X添加到本地开发Pod。因此,它已添加到Pods.xcodeproj文件的开发Pod目标的“编译源”中。

现在,您将分支切换到另一个没有文件X的提交。由于您用gitignore Pods.xcodeproj,因此文件X保留在“编译源”中,并导致构建失败。