pod目录是否应该纳入版本控制中

pod是否纳入版本控制完全取决于你的项目,但是我建议将pod目录纳入版本控制,但是最终决定权还是在你手中。

检查Pods目录的好处

  • 克隆后,项目可以立即运行,即使没有在机器上安装CocoaPods。 且没有必要运行pod install,同时不需要Internet连接。
  • Pod工件(代码/库)总是可用的,即使Pod的源(例如GitHub)下架。
  • 克隆仓库后,Pod文件保证与原始安装中的相同。

忽略Pods目录的好处

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

什么是Podfile.lock?

此文件在第一次运行pod安装后生成,并跟踪安装的每个Pod的版本。 例如,假设在Podfile中指定的以下依赖关系:

pod 'RestKit'

运行pod安装将安装当前版本的RestKit,同时生成Podfile.lock,标识安装的精确版本(例如RestKit 0.10.3)。 多亏了Podfile.lock,在不同的机器上运行pod安装在例子中的项目上,以后在一个不同的机器上仍然会安装RestKit 0.10.3,即使一个较新的版本可用。 CocoaPods将在Podfile.lock中的Pod版本,除非在Podfile或pod更新被调用(这将导致生成一个新的Podfile.lock)中进行相关更新。 这样CocoaPods避免了由意外更改依赖关系导致的头痛。

内部原理

在Xcode中,直接从ruby源引用它:
1.创建或更新workspace。
2.如果需要,将项目添加到工作区。
3.如果需要的话添加CocoaPods static library project到workspace。
4.添加libPods.a到targets => build phases => link with libraries.
5.将CocoaPods Xcode配置文件添加到应用程序的项目中。
6.将应用的目标配置更改为基于CocoaPods的。
7.Adds a build phase to copy resources from any pods you installed to your app bundle. i.e. a ‘Script build phase’ after all other build phases with the following:

  • Shell: /bin/sh
  • Script: ${SRCROOT}/Pods/PodsResources.sh

注意,如果CocoaPods静态库已经在您的项目中,则跳过前三个步骤。 这主要是由于于Jonah Williams是基于静态库工作的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 22,158评论 0 39
  • Ruby 安装 要安装cocospods 首先需要安装ruby,可以先安装xcode,再安装macport ,最后...
    山天大畜阅读 1,886评论 0 1
  • 简介:许多人开始使用 CocoaPods 的时候,似乎认为 pod install 仅仅被用于第一次你通过 Coc...
    RX78178阅读 1,091评论 0 1
  • 每日一抽 #玩卡不卡·每日一抽# 每一位都可以通过这张卡片觉察自己: 1、直觉他叫什么名字?小雷 2、他几岁了? ...
    Bigcherry阅读 388评论 0 1
  • Promiseshi 抽象异步处理对象以及对其进行各种操作的组件。Nodejs编程中常见的回调函数第一个参数是er...
    huaziHear阅读 501评论 0 1