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

How to publish new official pod version?

更新 pod 版本失败

我正在使用 Xcode 8.2.1 和 CocoaPods v1.1.1,我的代码是 Swift 3

我的问题是发布我的 pod 的新版本或更新现有版本,这在 pod spec lint 上失败了。

我创建了一个 PlaybuzzSDK pod,我想更新它的代码。 我通过 GitHub 客户端提交并推送了新代码,但更改并未反映在 pod class 上,仅反映在示例项目上。

我做了什么?

我创建了新标签并尝试推送它,但未通过验证:

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) - ERROR | [iOS] unknown: Encountered an unknown error ([!] /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

Cloning into '/var/folders/h0/knhpn8z16n3cz6tkny5rmtn00000gn/T/d20161228-47834-nli8c4'... warning: Could not find remote branch v0.1.0 to clone. fatal: Remote branch v0.1.0 not found in upstream origin ) during validation.

[!] The spec did not pass validation, due to 1 error. [!] The validator for Swift projects uses Swift 3.0 by default, if you are using a different version of swift you can use a .swift-version file to set the version for your Pod. For example to use Swift 2.3, run: echo "2.3" > .swift-version.

我尝试过的其他事情:

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

我预计会发生什么

我希望从现在开始,如果有人添加

pod 'PlaybuzzSDK' 

并将更新他们的 pods,他们将获得新版本

新版本意味着 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

总结,更新一个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

您的 podfile 似乎使用的是 v0.1.1 标签,但您存储库中的标签是 0.1.1 而没有 v。这也会导致 linting 失败。

您需要将名为 .swift-version 的文件添加到存储库的顶层,以便在安装 pod 时正确配置您的用户项目。

在项目的顶层,运行这个命令:

echo "3.0" > .swift-version

然后提交并将您的标签更新为该提交。

您的 podfile 似乎也在使用标签 v0.1.1,但是您存储库中的标签是 0.1.1 而没有 v。这也会导致 linting 失败。