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

问题描述 投票:0回答:2

我正在关注 Firebase 的互联网教程,作为其中的一部分,我必须在命令行上做一些工作。我对命令行非常熟悉,但我不熟悉 Cocoapods。我运行了

pod repo update
,但这样做之后我意识到我在 Mac 的整个 Documents 文件夹上运行了它,而不是在包含我的项目的文件夹上运行。我花了 20 多分钟来执行,最终完成时它打印出了数千条内容,其中一些包括“创建”和“删除”。我有点担心 - 除了 Firebase 项目之外,运行此命令是否会修改我的文档中的任何内容?
pod repo update
对此有何作用?

ios iphone xcode cocoapods podfile
2个回答
140
投票

根据文档 pod repo update 更新位于主文件夹中

~/.cocoapods/repos
的规范存储库。

更新spec-repo NAME的本地克隆。如果省略 NAME 将更新 ~/.cocoapods/repos 中的所有规范存储库。

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

所以回答你的问题.. 在文档文件夹中运行

pod repo update
不会在该文件夹中执行任何操作。它将仅更新您的
~/.cocoapods/repos
文件夹中的 pod 规格参考。


22
投票

主要的 Specs 存储库只不过是所有 PodSpecs 的列表。 PodSpec 是:

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

PodSpec 的每个版本都位于一个 tag 目录下。 该存储库不包含 pod 本身。该存储库包含 PodSpec。 PodSpec 给出了存储库的位置和一堆其他元数据⚡︎

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

当您执行

pod repo update
时,您将从 https://github.com/CocoaPods/Specs 中提取最新的 PodSpec(不是实际的 Pod)。如果您只想更新单个 pod 源,那么只需执行
pod repo update [NAME]

Cocoapods/规格主仓库:

一些 Alamofire PodSpecs 的列表

A 单个 PodSpec 4.7.3:


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


您的实际项目通过

pod update
pod install
提取代码,然后将物理文件下载到您的 Mac 并复制到您的项目。

您经常会收到此错误:

您的规范源都不包含满足依赖关系的规范:

AlamoFire (= 11.0.3), AlamoFire (= 11.0.3)

您有: * 过时的源代码库,您可以使用它进行更新

pod repo update
或与
pod install --repo-update
。 * 打错了 名称或版本。 * 未添加托管 Podspec 的源存储库 到你的 Podfile。

规格来源很重要。这只是意味着您还没有输入规格。 您可以通过执行

pod repo
轻松查看您拥有的规格来源。我的是:

cocoapods
- Type: git (remotes/origin/master)
- URL:  https://github.com/CocoaPods/Specs.git
- Path: /Users/mfaani/.cocoapods/repos/cocoapods

private_pods
- Type: git (master)
- URL:  [email protected]:xyz/private_Cocoapods.git
- Path: /Users/mfaani/.cocoapods/repos/private_cocoapods

trunk
- Type: CDN
- URL:  https://cdn.cocoapods.org/
- Path: /Users/mfaani/.cocoapods/repos/trunk
© www.soinside.com 2019 - 2024. All rights reserved.