pod update 没有得到 pod 的最新版本

Posted

技术标签:

【中文标题】pod update 没有得到 pod 的最新版本【英文标题】:pod update not getting most updated version of pod 【发布时间】:2019-10-01 01:40:42 【问题描述】:

Cocoapods 和 Xcode 都是最新版本

我有一个 pod,我将其 repo 直接链接到我的 podfile 中,并指定使用版本 1.5.0(已在 Github 上作为版本发布)。但是,每当我运行 pod install 和 pod update 时,Cocoapods 都会不断获取我的 repo(之前的 Github 版本)的 1.4.1 版本。

这是我的 podfile 的相关行:

pod 'podName', :git=> 'git repo'

我已尝试删除 Podfile.lock 并重新下载 pod,并且我已确保实际将最新版本的 pod 推送到 Github。

【问题讨论】:

您可以发布您指定使用 1.5.0 的实际行吗?你也跑pod repo update了吗? 您是否尝试过运行 pod repo update 来更新到最新的可用 pod? 我从不指定要使用的版本,我相信这意味着 Cocoapods 将使用最新版本的 pod。我试过pod repo update 仍然保留版本 1.4.1。 【参考方案1】:

如果不知道哪个 pod 并查看使用确切版本的代码,很难判断哪里出了问题。

但我会运行pod repo update 然后运行pod install

这会将您的本地 pod 更新到最新的可用版本,然后假设您设置正确,然后安装正确的 pod 版本。

关于版本的 Cocoapod 文档:

Besides no version, or a specific one, it is also possible to use logical operators:

'> 0.1' Any version higher than 0.1
'>= 0.1' Version 0.1 and any higher version
'< 0.1' Any version lower than 0.1
'<= 0.1' Version 0.1 and any lower version
In addition to the logic operators CocoaPods has an optimistic operator ~>:

'~> 0.1.2' Version 0.1.2 and the versions up to 0.2, not including 0.2 and higher
'~> 0.1' Version 0.1 and the versions up to 1.0, not including 1.0 and higher
'~> 0' Version 0 and higher, this is basically the same as not having it.


To use the master branch of the repo:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git'

To use a different branch of the repo:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :branch => 'dev'

To use a tag of the repo:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :tag => '3.1.1'

Or specify a commit:
pod 'Alamofire', :git => 'https://github.com/Alamofire/Alamofire.git', :commit => '0f506b1c45'

【讨论】:

指定一个版本,例如pod 'podName', :git=&gt; 'git repo', '1.5.0' 给我一个syntax error, unexpected keyword_do_block, expecting keyword_end installer.pods_project.targets.each do |target| 错误指定我在其中包含1.5.0 版本的这些新更改的特定提交仍然下载1.4.1 版本。 @Kevin2566 你介意分享一下这是给哪个 cocoapod 的吗?这是私人的还是公共的 cocoapod? 这是一个私有的 cocoapod(从技术上讲是公开的 repo,但我不想和我的身份一起分享),这就是为什么我不愿意发布实际代码的原因。但是,我发布的代码与我的 Podfile 中的代码完全相同,只是删除了 pod 和 repo 名称。 @Kevin2566 好的,我明白了,您是否确保通过设置标签和 repo push 使 pod 版本可访问? guides.cocoapods.org/making/using-pod-lib-create.html && medium.com/@shahabejaz/… 我有一个强烈的怀疑,错过了一步,这就是为什么它不能正常工作,我知道我过去用私人 pod/repos 做过。 我尝试推送“1.5.0”标签,但收到hint: Updates were rejected because the tag already exists in the remote. 错误。【参考方案2】:

试试这个:

pod 'podName', :git => 'git repo', :tag => '1.5.0'

如果它找不到标签,您可能在标签版本内的.podspec 文件中有错误。

但是,您仍然可以像这样安装标签:

pod 'podName', :git => 'git repo', :branch => '1.5.0'

【讨论】:

以上是关于pod update 没有得到 pod 的最新版本的主要内容,如果未能解决你的问题,请参考以下文章

如果我使用 pod,我不会得到 FBSDKMessengerShareKit.framework

pod install update没有反应

CocoaPods 1.0之前版本无法pod install和pod update! 更新后CocoaPods 1.1.1 Podfile新的写法.

firebase pod 安装的版本低于存在的最新版本

iOS-pod install&pod update

pod指定版本