87

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

4

2 回答 2

111

根据文档pod repo update更新位于~/.cocoapods/repos您的主文件夹中的规范 repos。

更新 spec-repo NAME 的本地克隆。如果 NAME 被省略,这将更新 ~/.cocoapods/repos 中的所有 spec-repos。

repo基本上是所有可用 pod 和版本的列表。我刚刚在我们的 CI 构建中遇到了一个错误,因为 repo 没有包含我刚刚添加的库的规范。通过运行pod repo update它现在知道这个较新的版本并且可以继续安装它。

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

于 2017-07-13T13:24:29.920 回答
12

主要的 Specs repo 只不过是所有 PodSpecs 的列表。PodSpec

规范描述了 Pod 库的一个版本。它包括有关应从何处获取源的详细信息 [哪个标记或提交或分支]、要使用的文件、要应用的构建设置以及其他一般元数据,例如其名称、版本和描述。

specs 目录只不过是所有不同 PodSpecs 的列表。每个版本的 PodSpec 都在一个标签目录下。repo 不包含 pod 本身。存储库包含 PodSpec。PodSpec 给出了 repo 的位置和一堆其他元数据⚡︎

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

当您这样做时pod repo update,您将从https://github.com/CocoaPods/Specs拉出最新的 PodSpecs(不是实际的 pod) 。如果您只想更新单个 pod 源,那么只需执行pod repo update [NAME]

Cocoapods/Specs 主仓库:

在此处输入图像描述

一些 Alamofire PodSpecs的列表

在此处输入图像描述

单个 PodSpec 4.7.3 :

在此处输入图像描述


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


您的实际项目通过pod updatepod install然后将物理文件下载到您的 Mac 并为您的项目复制代码来提取代码。

于 2019-08-12T20:32:16.303 回答