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去设备.

pod update速度慢,  试下lg_pod_plugin吧
这样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