【发布时间】:2017-05-12 16:45:43
【问题描述】:
更新 pod 版本失败
我使用的是 Xcode 8.2.1 和 CocoaPods v1.1.1,我的代码是 Swift 3
我的问题是发布我的 pod 的新版本或更新现有版本,这在 pod spec lint 上失败了。
我创建了一个PlaybuzzSDK pod,我想更新它的代码。 我通过 GitHub 客户端提交并推送新代码,但更改并未反映在 pod 类上,仅反映在 Example 项目上。
我做了什么?
我创建了新标签并尝试推送它,但没有通过验证:
git tag 0.1.1 (successful)
git push origin 0.1.1 (successful)
pod spec lint PlaybuzzSDK.podspec (unsuccessful with error below)
pod trunk push PlaybuzzSDK.podspec (unsuccessful with error below)
-> PlaybuzzSDK (0.1.1) - 错误 | [iOS]未知:遇到未知错误([!] /usr/bin/git clone https://github.com/LudaFuxPlaybuzz/playbuzz-ios-sdk.git /var/folders/h0/knhpn8z16n3cz6tkny5rmtn00000gn/T/d20161228-47834-nli8c4 --template= --single-branch --深度 1 --branch v0.1.1
正在克隆到 '/var/folders/h0/knhpn8z16n3cz6tkny5rmtn00000gn/T/d20161228-47834-nli8c4'... 警告:找不到要克隆的远程分支 v0.1.0。致命:验证期间在上游源中找不到远程分支 v0.1.0。
[!] 由于 1 个错误,规范未通过验证。 [!] Swift 项目的验证器默认使用 Swift 3.0,如果您使用不同版本的 swift,您可以使用 .swift-version 文件为您的 Pod 设置版本。例如要使用 Swift 2.3,请运行:echo "2.3" > .swift-version。
我尝试过的其他事情:
- 我从我的组合中删除了该项目并再次克隆它
- 我已经清理了 CocoaPods 的缓存
rm -rf ~/Library/Caches/Cocoapods rm -rf ~/.cocoapods/repos - 我尝试创建一个新分支并尝试对分支进行 pod lint。
但我每次都会收到此错误。
我预期会发生什么
我希望从现在开始,如果有人添加
pod 'PlaybuzzSDK'
并将更新他们的 pod,他们将获得新版本
新版本意味着 reloadItem 将具有以下签名:
public func reloadItem(_ itemAlias:String,
companyDomain: String,
showItemInfo:Bool)
发生了什么事
我无法通过 pod lint。 当我从示例项目更新 pod 时,函数 reloadItem 会返回到
public func reloadItem(_ userID: String,
itemAlias:String,
showRecommendations: Bool,
showShareButton: Bool,
showFacebookComments: Bool,
showItemInfo: Bool,
companyDomain: String)
演示问题的项目
【问题讨论】:
-
您应该更新您的版本并将源指向正确的 git 并使用正确的标签,也许是版本和标签 0.1.3?另外,在尝试推送之前先做一个
pod spec lint -
我希望更新在主服务器上。不是新的分支和标签..
-
pod 将使用标签来更新其代码,而不是分支,它显示在您的 podspec 中,您将其指向带有标签 0.1.0 的 git
-
那我到底应该怎么做呢?
-
按照更新教程做上面我说的,把podspec里的东西指向正确的tag,pod按tag管理,只有安装的时候才能使用分支