CocoaPods如何存储不同版本的pod zip链接?

时间:2018-10-03 00:16:50

标签: ios cocoapods

我有一个私有的CocoaPods框架,因为它是一个iOS框架,所以我必须将其压缩并放入s3中才能下载。

最后看起来像这样:

Pod::Spec.new do |s|
s.name         = "XXX"
s.version      = "1.0.1"
s.homepage     = "https://bitbucket.org/XXX"
s.summary      = "XXX"
s.description  = "XXX"
s.license      = "Commercial"
s.author       = "XXX"
s.source       = { :http => "https://s3-ap-southeast-2.amazonaws.com/XXX.zip" }
s.platform     = :ios, "9.0"
s.swift_version= "4.1"
s.ios.vendored_frameworks = "XXX.framework"
end

每次更新框架时,我都会压缩一个新的.framework文件,然后使用完全相同的网址https://s3-ap-southeast-2.amazonaws.com/XXX.zip替换可下载的zip文件。

上传后,我执行pod push YYY xxx.podspec将podspec推送到另一个中央pod spec存储库中。

我想知道的是,使用此框架的开发人员是否将其从1.0.0更新为1.0.1。 CocoaPods将从相同的链接下载最新的framework。如果开发人员想要回滚到1.0.0,该怎么办? CocoaPod在哪里/如何存储该zip的旧(所有)版本?

2 个答案:

答案 0 :(得分:1)

您需要在服务器上托管不同版本的框架,并提供不同的podspec:

旧版本

s.version      = "1.0.0"
s.source       = { :http => "https://s3-ap-southeast-2.amazonaws.com/XXX-1-0-0.zip" }

当前版本:

s.version      = "1.0.1"
s.source       = { :http => "https://s3-ap-southeast-2.amazonaws.com/XXX-1-0-1.zip" }

等等

s.version      = "1.5.1"
s.source       = { :http => "https://s3-ap-southeast-2.amazonaws.com/XXX-1-5-1.zip" }

这样,当您将podspec与pod install / pod update一起使用时,开发人员将获取正确的源。

我给他们起了一个可能的名字。另外,您可以对尚未公开的“ pre-versions”使用不同的名称,以免用户猜测地址而直接“下载”它们。

答案 1 :(得分:0)

名称为<PackageName>的CocoaPod版本存储在此处:~/Library/Caches/CocoaPods/Pods/Release/<PackageName>