我有一个私有的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的旧(所有)版本?
答案 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>