美文网首页iOS Developer
pod目录是否应该纳入版本控制中

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

作者: binge | 来源:发表于2016-12-14 13:37 被阅读383次

    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目录是否应该纳入版本控制中

        本文链接:https://www.haomeiwen.com/subject/xyyimttx.html