Cocoapods:强制下载最新版本

Ale*_*kov 1 cocoapods

我在一个 podspec 非常过时的项目中使用了一个库。结果,我的项目似乎正在拉入旧文件。有问题的图书馆是 Classy:https : //github.com/ClassyKit/Classy

提到 0.2.4 版本的 podspec 自 2014 年以来一直没有更新。然而,实际版本有一些必要的修复(例如https://github.com/ClassyKit/Classy/pull/97/commits)在 podspec 更新之后。与其手动移动东西,我更喜欢让 cocoapods 处理它以确保文件同步。问题是,每当我运行“pod update”时,它都声称回购是最新的。

Cœu*_*œur 5

简单的解决方案

您可以自动针对特定分支的最新提交:

pod 'Classy', git: 'https://github.com/cloudkite/Classy.git', branch: 'master'
Run Code Online (Sandbox Code Playgroud)

您可以使用 head 说明符自动定位最新提交(归功于斯大林凯):

pod 'Classy', git: 'https://github.com/cloudkite/Classy.git', commit: 'HEAD'
Run Code Online (Sandbox Code Playgroud)

您可以手动定位今天的最新提交,以冻结与特定提交的集成:

pod 'Classy', git: 'https://github.com/cloudkite/Classy.git', commit: 'c319908f8bded62e268dfd48ee5d65329b819129'
Run Code Online (Sandbox Code Playgroud)

克隆替代品

您可以克隆存储库,更新 .podspec(只需删除对标记的引用并将版本设置为“0.0.1”),并在 Podfile 中定位您自己的存储库:

pod 'Classy', git: 'https://github.com/atsepkov/Classy.git'
Run Code Online (Sandbox Code Playgroud)

或同样的事情并针对您自己的 .podspec:

pod 'Classy', podspec: 'https://github.com/atsepkov/Classy/blob/master/JSONKit.podspec'
Run Code Online (Sandbox Code Playgroud)

举个例子,这正是我在这里所做的:https : //github.com/Coeur/Classy/blob/master/Classy.podspec

您还可以创建自己的 .podspec 文件源,并添加它的源:

source 'https://github.com/atsepkov/Specs.git'
pod 'Classy'
Run Code Online (Sandbox Code Playgroud)

或者您可以将您的 .podspec 以新名称推送到 CocoaPods 主干:

pod trunk push ClassyByAlexanderTsepkov.podspec
Run Code Online (Sandbox Code Playgroud)

旧 CocoaPods

如果您使用的是 CocoaPods 0.39.0(但它不再适用于 1.0.0+),您可以直接使用head命令:

pod 'Classy', :head
Run Code Online (Sandbox Code Playgroud)

什么行不通

如果您直接针对 repo,您​​将使用该 repo 的最新 .podspec(但这对您的情况来说还不够):

pod 'Classy', git: 'https://github.com/cloudkite/Classy.git'
Run Code Online (Sandbox Code Playgroud)

联系作者

最后,考虑联系 podspec 所有者https://twitter.com/cloudkite