lg_pod_plugin
是用来加速clone git仓库的东西, 当你在Podfile文件中这样运用
pod 'YYModel', :git => 'xxxx', :branch => 'master'
有时候克隆速度会很慢, 常常卡住不动, 一个 100 多兆的仓库, 手动去下载zip压缩文件, 也不过几秒钟的工作.
当运用cocoapods去下载时变得十分缓慢, 小编根据这种状况, 想到了经过解析 Podfile
文件中所有依靠信息, 去单独下载项目需求的 Pod库, 然后再复制到 “~/Cocoapods/Cache”目录下, 这样运用pod install或许pod update 速度会有很明显提升.
1. 设备方法
推荐运用bundle
设备lg_pod_plugin
, 免除手动设备 gem install lg_pod_plugin
, 方便后续晋级lg_pod_plugin
版别.
- 创建
Gemfile
文件
bundle init #初始化一个bundle 环境, 类似于pod init
- 编写
Gemfile
文件, 类似于Podfile
# 建议运用ruby-china镜像去设备 所有依靠组件
source 'https://gems.ruby-china.com/' # 跟podfile写法是相同的
gem 'cocoapods', '~> 1.11.3' #指定 cocoapods版别
gem 'lg_pod_plugin', '~> 1.0.0' #指定 lg_pod_plugin版别
- 设备项目所需求的依靠组件
bundle install / bundle update #类似于pod install pod update
假设运用的是Xcode 供应的 2.6.8 的 ruby, bundle install可能会报 bundle 1.7.3 版别过低问题
, 处理这个问题有两个计划, 假设运用RVM, rbenv设备的ruby则不需求关怀这个问题.
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Could not find 'bundler' (2.3.22) required by your /Users/dongzb01/Desktop/app/l-vehicle-workspace/l-vehicle/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.3.22`
from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
from /usr/local/bin/bundle:23:in `<main>'
- 删除
Gemfile.lock
文件, 并设置为疏忽文件, 不被 git 所追寻到 - 晋级
Bundler
到 2.3.22
sudo gem install bundler 2.3.22
- 经过
gem install
设备lg_pod_plugin
# 假设是运用rvm, rbenv来处理 ruby 则不需求加 sudo
sudo gem install lg_pod_plugin
2. 怎样运用lg_pod_plugin
lg_pod_plugin 供应了命令行东西, 1.0.10 版别后将不再供应 API 给外部运用, 需求运用其供应的命令行东西.
#和 pod install 相同
lg pod install [--verbose --no-repo-update]
lg pod install [--repo-update]
#和 pod update 相同
lg pod update [--verbose --no-repo-update]
lg pod update [--repo-update]
对保管在 github 上的仓库具有下载加速功用
内部运用 gh.api.99988866.xyz/ 来加速下载github资源
假设贵公司网络不能翻墙, 那么能够经过下边方法来加速下载 github上的仓库
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :tag => '4.0.1'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :branch => 'master'
pod 'AFNetworking', :git => 'https://github.com/AFNetworking/AFNetworking.git', :commit => '4eaec5b586ddd897ebeda896e332a62a9fdab818'
3. 作业原理
这是一个拿空间换时间的处理计划, 在~/Cache/LgPodPlugin目录下边 clone 代码仓库, 并将代码 Copy 到 ~/Caches/Cocoapods 目录下边, 交给cocoapods去设备.
这样cocoapods命中缓存后, 就不会去git download pod xxx
, 处理了下载git仓库速度慢的问题.
第2次查找缓存时 先经过 git ls-remote
检查 --refs
有无改动, 假设没有改动, 就运用Cocoapods Pod缓存, 假设有最新的commit信息, 先经过git pull 更新缓存组件仓库内容, 再将 pod需求的文件和资源复制到 ~/Library/Caches/Cocoapods 目录下, 交给cocoapods设备. 同一个pod组件最多支撑缓存两个版别, 比如 ‘feature/xxxx01’, ‘feature/xxxx02’, 当有第三个feautre/xxxx03时会筛选一个不常常运用的pod 缓存, 避免了本机下载太多git仓库.
gem仓库: rubygems.org/gems/lg_pod…
gitee仓库: gitee.com/fmdb_beante…
开源不易希望各位看官能给个star, 感兴趣的小伙伴能够去检查源码
运用过程中有遇到问题 加自己QQ群: 484799114