我正在使用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] unknown:遇到未知错误([!] / usr / bin / git clone https://github.com/LudaFuxPlaybuzz/playbuzz-ios-sdk.git / var / folders / h0 / knhpn8z16n3cz6tkny5rmtn00000gn / T / d20161228-47834-nli8c4 --template = --single-branch --depth 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版本。
我尝试过的其他内容:
rm -rf ~/Library/Caches/Cocoapods
rm -rf ~/.cocoapods/repos
但我每次都会收到这个错误。
我预计从现在开始,如果有人补充
pod 'PlaybuzzSDK'
并将更新他们的播客,他们将获得新版本
新版本意味着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)
答案 0 :(得分:16)
摘要,更新pod:
podspec
中的版本和标记使用当前代码创建新标记,确保它与podspec
git tag 0.1.1
git push origin 0.1.1
致电pod spec lint
进行检查,pod trunk push
在回购主列表上更新
pod lib lint YourSDK.podspec
pod trunk push YourSDK.podspec
您的podfile似乎正在使用标记v0.1.1,但是您的存储库中的标记是0.1.1而没有v。这也会导致linting失败。
答案 1 :(得分:1)
您需要将名为.swift-version
的文件添加到存储库的顶层,以便在安装pod时正确配置用户项目。
在项目的顶层,运行以下命令:
echo "3.0" > .swift-version
然后提交并将标记更新为该提交。
您的podfile似乎也在使用标记v0.1.1
,但您的存储库中的标记为0.1.1
,但没有v
。这也会导致掉毛失败。