如何基于 CDN 机制假设 cocoapods 私服

2020-07-15 21:36:24 +08:00
 apanlin

公司内网架设了 cocoapods 私服,但是基于老版本的, 使用 git 管理 podspec 仓库,但是这样有很多问题

我们知道 cocoapods 在 1.8 版本之后 正式推出了基于 cdn 机制的新方案

抛弃了原来的 git 管理的 master 仓库,转而使用 trunk 文件夹存放 podspec 文件 然后 source 也改为了 source 'https://cdn.cocoapods.org/'

我现在也想升级下公司的 cocoapods 机制,改为官方 1.8 之后的基于 cdn 的新方式

但是目前看了一遍下来,没有太多的头绪,

请问各位大佬,你们有没有相关的经验,跪求指点!

1378 次点击
所在节点    iOS
4 条回复
apanlin
2020-07-16 10:28:48 +08:00
求大佬
elfsundae
2020-07-19 21:22:31 +08:00
1. 私有库没必要用 CDN,况且还是内网 git,你们能托管多少库?
2. 如果真要弄的话也很简单,我以前搞过官网镜像,官方 Specs 这个仓库里有现成的脚本。现有的 git 仓库不变,发布包还是推到 git 仓库,定期或通过 git hook 执行脚本,脚本生成所有库的索引文件,把索引文件和 podspec 文件推到 CDN,或者 http 服务器直接指向 git 仓库也行。CDN 或 http 服务器配置下缓存策略 etag 。使用方法:执行 pod repo add-cdn http://your-cdn.url 或者在 Podfile 中添加 souce 即可。
apanlin
2020-09-01 14:34:41 +08:00
@elfsundae 大佬请问现在的 git 仓库 文件数量一直膨胀,有没有好的删除策略。 我们现在 repo 仓库是个 git 仓库,然后整个项目在迅速迭代中,一个月能增加几千个版本号,也就是 git 仓库中增加几千个版本号文件夹, 经过几年已经达到了 15 万个版本号文件夹。 我直接把几个月前的所有版本号全部删除了, 感觉有点粗暴。 请问你们有遇到这个问题吗,有什么策略应对呢? 谢谢大佬
elfsundae
2020-09-11 11:01:12 +08:00
删除 git 里的文件,git 记录还在的,删文件对 clone/pull 速度没多大影响。
我还没见过几千个版本号的 pod 库,不知道你们为什么要这么频繁的给 pod repo 里发布新版本,一般是比较稳定的版本才会发布到 pod 仓库。开发时可以在 Podfile 中指定源安装,比如 `pod 'XYZ', :git => 'git://xxx.git', :branch => 'dev'` 这就是从 dev 分支安装,每次 pod update 都会拉取 dev 分支的最新代码再集成。
如果真的需要一月几千个版本号,CDN 源会比 git 源快很多。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/690383

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX