Cocoapods 秘笈(3 篇)

  1. 极速化 CocoaPods
  2. Cocoapods 新增 CDN 加速镜像源码解读
  3. Cocoapods CDN 加速新解

距离 Cocoapods 支持 CDN 源已经 3 年,期间不断有开发者从 CDN 源切回了最初 Git 源的方案,Cocoapods 也没有更多的改进措施。

当初写CDN 加速镜像源码解读还是用的 jsdelivr 没想到过了 2 个小版本改 Netlify 了。从国内几大 DNS 解析结果来看总会到 cloudflare 上面。

 1$ doggo cdn.cocoapods.org CNAME @202.106.0.20
 2NAME          	TYPE	CLASS	TTL 	ADDRESS                       	NAMESERVER
 3cocoapods.org.	SOA 	IN   	303s	betty.ns.cloudflare.com.      	202.106.0.20:53
 4              	    	     	    	dns.cloudflare.com. 2280316554
 5              	    	     	    	10000 2400 604800 3600
 6
 7$ doggo cdn.cocoapods.org CNAME @114.114.114.114
 8NAME          	TYPE	CLASS	TTL 	ADDRESS                       	NAMESERVER
 9cocoapods.org.	SOA 	IN   	277s	betty.ns.cloudflare.com.      	114.114.114.114:53
10              	    	     	    	dns.cloudflare.com. 2280316554
11              	    	     	    	10000 2400 604800 3600

jsdelir 的 CDN 是全球覆盖相对比较广的,中国地区用的是网宿节点,但证书问题现在流量都切到了 Fastly

jsdelivr network

国内 DNS 解析的结果可以看出来:

1$ doggo cdn.jsdelivr.net CNAME @114.114.114.114
2NAME             	TYPE 	CLASS	TTL  	ADDRESS                 	NAMESERVER
3cdn.jsdelivr.net.	CNAME	IN   	1529s	jsdelivr.map.fastly.net.	114.114.114.114:53
4
515:38:53 in ~
6$ doggo cdn.jsdelivr.net CNAME @202.106.0.20
7NAME             	TYPE 	CLASS	TTL  	ADDRESS                 	NAMESERVER
8cdn.jsdelivr.net.	CNAME	IN   	1515s	jsdelivr.map.fastly.net.	202.106.0.20:53

jsdelivr 支持 Github 仓库代码的 CDN 加速,利用本机制可以把 CDN 源加速到 jsdelivr。

官方 CDN 源的源码仓库是 Cocoapods/cdn.cocoapods.org,主分支是同步脚本,gh-pages 分支是源的真实数据。

生成工具

Cocoapods github 仓库和 jsdelivr CDN 生成结果

打开 Podfile 修改或添加新的地址:

1- source "https://cdn.cocoapods.org"
2+ source "https://cdn.jsdelivr.net/gh/CocoaPods/cdn.cocoapods.org@gh-pages"

也可以手动指定 jsdelivr 不同的 CDN 供应商

  • fastly.jsdelivr.net
  • testingcf.jsdelivr.net
  • quantil.jsdelivr.net (目前不可用)

利用这个原理可以套到任何支持 Github 仓库作为 CDN 加速的服务。