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=> '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
CocoaPods 1.0之前版本无法pod install和pod update! 更新后CocoaPods 1.1.1 Podfile新的写法.