如何发布新的官方pod版本?

时间:2016-12-28 11:43:24

标签: ios cocoapods podspec

更新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] 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版本。

我尝试过的其他内容:

  • 我从我的comp中删除了该项目并再次克隆它
  • 我已经清理了CocoaPods的缓存 rm -rf ~/Library/Caches/Cocoapods rm -rf ~/.cocoapods/repos
  • 我试图创建一个新的分支并试图将lint分支。

但我每次都会收到这个错误。

我期待发生什么

我预计从现在开始,如果有人补充

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)

演示问题的项目

https://github.com/LudaFuxPlaybuzz/playbuzz-ios-sdk

2 个答案:

答案 0 :(得分:16)

摘要,更新pod:

  1. 事先更新podspec中的版本和标记
  2. 提交,将代码推送到git
  3. 使用当前代码创建新标记,确保它与podspec

    中的标记相同

    git tag 0.1.1

    git push origin 0.1.1

  4. 致电pod spec lint进行检查,pod trunk push在回购主列表上更新

    pod lib lint YourSDK.podspec

    pod trunk push YourSDK.podspec

  5. 您的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。这也会导致掉毛失败。