我有一个私有的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
文件,然后用完全相同的 url 替换可下载的 zip 文件:https://s3-ap-southeast-2.amazonaws.com/XXX.zip
。
上传后,我pod push YYY xxx.podspec
将 podspec 推送到我的另一个中央 pod 规范存储库中。
我想知道的是,使用此框架的开发人员是否将其从1.0.0
更新为1.0.1
。CocoaPods将从该完全相同的链接下载最新的framework
。如果开发人员想要回滚到1.0.0
怎么办?CocoaPod 在哪里/如何存储旧(所有(版本的 zip?
您需要在服务器上托管不同版本的框架,因此提供不同的 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
一起使用时,开发人员将获取正确的源代码。
我为它们提供了一个可能的命名。此外,您可以将不同的用于尚未公开的"预版本",以避免用户通过猜测地址提前"下载它们"。
带有名称<PackageName>
的 CocoaPod 版本缓存在此处:~/Library/Caches/CocoaPods/Pods/Release/<PackageName>