`pod repo update`到底是做什么的?


71

我正在关注Firebase上的互联网教程,作为其中的一部分,我必须在命令行上进行一些工作。我对命令行非常满意,但是对Cocoapods不熟悉。我运行了,pod repo update但是这样做之后,我意识到我将其运行在Mac的整个Documents文件夹中,而不是包含项目的文件夹中。我花了20分钟以上的时间执行,最终完成时,它打印出了成千上万的内容,其中包括“创建”和“删除”。我有点担心-运行此命令是否会修改Firebase项目之外的文档中的任何内容?又是什么pod repo update,甚至为此事做什么?


为什么不只是阅读文档。像guides.cocoapods.org/using/pod-install-vs-update.html
Roope,

1
@Roope我确实阅读了该文档。我只是不知道会发生什么,因为在Documents文件夹中没有Podfile,它被埋在几层文件夹中。
阿蒂什卡,

Answers:


90

根据文档pod repo更新,更新位于~/.cocoapods/repos主文件夹中的spec repos 。

更新spec-repo NAME的本地克隆。如果省略NAME,这将更新〜/ .cocoapods / repos中的所有规范仓库。

repo基本上所有可用的豆荚和版本的列表。我刚刚在我们的CI版本中遇到一个错误,因为该回购未包含我刚刚添加的库的规范。通过运行,pod repo update它现在知道此较新的版本,可以继续安装它。

因此,回答您的问题。pod repo update在documents文件夹中运行将不会对该文件夹执行任何操作。它将~/.cocoapods/repos仅在您的文件夹中更新其容器规范参考。


如果我们不使用源代码控制,就不需要调用回购更新?只是吊舱安装?
isJulian00 '18

2
是的,您仍然需要调用Pod回购更新,cocoapods下载回购详细信息,无论您是否在项目中使用源代码控制都没关系,它需要加载Pod及其版本的列表
可编写脚本,

7
Cocoapods在所有Pod,其github发布链接,在线信息等信息中维护一个列表(repo),并在~/.cocoapods/repos文件夹中下载/编制索引。因此,当您安装它时,它将获得可用的Pod /库的最新列表。下线几个月,然后说Swift更新到新版本,那么您需要支持该swift版本的更新pod。但是您当地的可可足类对此更新版本一无所知。因此,您运行pod repo update并cocoapods更新了可用的库列表
可编写脚本的

1
没什么,只是运行一个构建,执行构建时不会包含该库
可编写脚本的

1
@izzyMachado,它应该是您支持的最低iOS版本。对于一个新项目,将其保留为12可能很好
。–可编写脚本的

10

Spec的主要存储库不过是所有PodSpec的列表。一个PodSpec是:

规范描述了Pod库的版本。它包括以下详细信息:应从[哪个标签,提交或分支]提取源位置,要使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)。

specs目录不过是所有不同PodSpecs的列表。每个版本的PodSpec都位于标签目录下。回购不包含豆荚本身。回购包含PodSpec。PodSpec给出了仓库的位置以及其他一些元数据

spec.source = { :git => 'https://github.com/tonymillion/Reachability.git', :tag => 'v3.1.0' }

这样做时pod repo update,您将从https://github.com/CocoaPods/Specs中获取最新的PodSpecs(而不是实际的pod)。如果您只想更新单个广告连播源,则只需执行pod repo update [NAME]

Cocoapods / Specs主存储库:

在此处输入图片说明

一些Alamofire PodSpecs列表

在此处输入图片说明

一个单一的PodSpec 4.7.3:

在此处输入图片说明


⚡︎:PodSpec:一个规范描述了Pod库的一个版本。它包括有关应从何处获取源,使用哪些文件,要应用的构建设置以及其他常规元数据(例如其名称,版本和说明)的详细信息。


您的实际项目将通过其中的一个代码来获取代码,pod update或者pod install将物理文件下载到您的Mac并为您的项目复制。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.