使用 jsdelivr 加速 cocoapod 库

本文介绍了如何利用 jsdelivr CDN 加速在中国大陆的 cocoapod 库下载,通过解决版本号和包体大小限制的问题,实现分拆、合并文件,并通过 podspec 配合 prepare_command 参数来自动化处理。文章详细讲解了整个流程,包括上传到 github、创建 podspec、组织结构和使用 lipo 脚本。
摘要由CSDN通过智能技术生成

iOS 开发时, cocoapods(后简称 pod) 是很常用的工具

我们偶尔也会自己开发 pod 库并上传到 pod 上

pod 的源码支持多种来源, 本地 path git http 等

一般来说, 如果是纯开源库, 我们直接把源码上传到 github , 然后使用 git 依赖即可

但是这有一个问题, github 的速度在中国大陆并不快, 我们有没有办法加速它呢?

这时候经过搜索, jsdelivr 出现在了搜索引擎里, 号称国内外都可用的cdn, 我用wget测试了一下, 10M/s的速度还是能保持的

jsdelivr 介绍

这东西本身最初目的是为了加速 js/css 的访问

但是, 上面也说了, 支持"任何"在 github 上的仓库, 很好, 我就喜欢这样的东西

版本号的坑

文档上说支持所有 ref 作为版本号, 然而不是, 我这里测试只支持 tag/release

包体大小限制

我的目的是为了给 flutter_ijkplayer 的 iOS 仓库找一个下载地址, ijkplayer 的 iOS 部分很大, 我打包完有 150M, 用了 xz 压缩方案让包变成了 35M

但 jsdelivr 有两个限制: 单文件不能大于 20M, 仓库的某版本不能大于 50M, 那这里就有问题了, 我的 xz 是 35M, 超过限制了, 这里我就要找解决方案了

解决之路

思考

首先是分拆, 这个好说, macOS 的 split 命令就支持

那合并呢? cat 命令就可以了

但怎么在 pod 中做呢, 我搜了一下 podspec 的语法, 发现可以配置 prepare_command 参数, 这个参数在安装时会被使用, 并且使用完毕后才会校验库是否存在

我们可以在这一步中来做真实的下载和合并操作

有了完整思路, 我要开始着手实施了

发包

前提:
假设我本地有一个 framework.tar.xz, 这个是已经打包好的库文件

分割文件

split -b 10m IJKMediaFramework.tar.xz IJKMediaFramework.tar.xz.

这里要注意最后一个参数最后有一个. 这样就能完成拆分

ll IJKMediaFramework.tar.xz*
-rw-r--r--  1 caijinglong  staff    33M  3 18 11:34 IJKMediaFramework.tar.xz
-rw-r--r--  1 caijinglong  staff    10M  3 18 11:34 IJKMediaFramework.tar.xz.aa
-rw-r--r--  1 caijinglong  staff    10M  3 18 11:34 IJKMediaFramework.tar.xz.ab
-rw-r--r--  1 caijinglong  staff    10M  3 18 11:34 IJKMediaFramework.tar.xz.ac
-rw-r--r--  1 caijinglong  staff   3.0M  3 18 11:34 IJKMediaFramework.tar.xz.ad

测试一下合并

cat IJKMediaFramework.tar.xz.* > IJKMediaFramework-Test.tar.xz

ll IJKMediaFramework-Test.tar.xz
-rw-r--r--  1 caijinglong  staff    33M  3 18 13:58 IJKMediaFramework-Test.tar.xz

这里大小是 ok 的. 再解压一下试试

mkdir test
mv IJKMediaFramework-Test.tar.xz test
cd test
tar xvf IJKMediaFramework-Test.tar.xz


ll
drwxr-xr-x  7 caijinglong  staff   224B  3 18 11:33 IJKMediaFramework.framework
-rw-r--r--  1 caijinglong  staff   1.0K  3 18 11:33 LICENSE

ll IJKMediaFramework.framework
total 295944
drwxr-xr-x  14 caijinglong  staff   448B  3 18 11:33 Headers
-rw-r--r--   1 caijinglong  staff   130M  3 18 11:33 IJKMediaFramework
-rw-r--r--   1 caijinglong  staff  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值