替代pod update速度慢的lg_pod_plugin安装使用详解

 更新时间:2022年09月13日 10:32:38   作者:BestiOSDev  
这篇文章主要介绍了替代pod update速度慢lg_pod_plugin安装使用方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1. 安装方式

推荐使用bundle 安装lg_pod_plugin , 免去手动安装 gem install lg_pod_plugin , 方便后续升级lg_pod_plugin版本, 适合团队开发, 总不能让所有人在自己电脑上都安装一次 lg_pod_plugin吧.

  • 创建 Gemfile 文件
bundle init #初始化一个bundle 环境, 类似于pod init
  • 编写Gemfile 文件, 类似于 Podfile
# 建议使用ruby-china镜像去安装 所有依赖组件
source 'https://gems.ruby-china.com/' # 跟podfile写法是一样的
gem 'git', '~> 1.12.0' #指定 git 版本
gem 'sqlite3', '~> 1.4.4' # 指定 sqlite3版本
gem 'cocoapods', '~> 1.11.3' #指定 cocoapods版本
gem 'lg_pod_plugin', '~> 1.0.0' #指定 lg_pod_plugin版本
  • 安装项目所需要的依赖组件
   bundle install / bundle update #类似于pod install pod update

2. 如何使用lg_pod_plugin

  • 导入 lg_pod_plugin
    require 'lg_pod_plugin' #ruby通过require 关键字导入一个框架
  • 实例化 LgPodPlugin::Install对象, 需要在 target 下初始化
target 'HelloMBox' do
  #通过LgPodPlugin.install(target) 方式初始化 Install对象, 然后在block 内编写 组件安装描述信息
  LgPodPlugin.install(self) do
  end
end  
  • 编写组件安装描述信息

不会处理 git && tag, git && commit, 交给Cocoapods去下载, 因为通过tag , commit获取的缓存是稳定的. 还有pod 'YYModel', '1.0.0' 这种Release pod 也不会进行处理, 只对 git && branch有效.

target 'HelloMBox' do
  #通过LgPodPlugin.install(target) 方式初始化 Install对象, 然后在block 内编写 组件安装描述信息
  LgPodPlugin.install(self) do
    #这个方法块里所有 pod 被 lg_pod_plugin 所管理, 并在本机 ~/Caches/LgPodPlugin目录下缓存下载仓库文件
    pod 'AFNetworking', :git => "https://gitee.com/fmdb_beantech/AFNetworking.git", :branch => "master"
  end
# 不被 lg_pod_plugin 管理的pod 组件
pod 'GRDB.swift', :git => 'https://gitee.com/fmdb_beantech/GRDB.swift.git', :branch => 'master'
end  

建议所有使用 git, branch组合的pod, 放到 LgPodPlugin.install(self) do 代码块里, 这样就可以对git仓库进行浅层克隆. 方法块外边的pod 组件不受 lg_pod_plugin 控制.

笔者做了一个实验, 当使用lg_pod_plugin 安装所有pod组件用时 07:30秒, 不使用时用时 29:50 秒. 其中多个pod组件出现 git clone卡主半天不动情况

3. 工作原理

这是一个拿空间换时间的解决方案, 在~/Cache/LgPodPlugin目录下边 clone 代码仓库, 并将代码 Copy 到 ~/Caches/Cocoapods 目录下边, 交给cocoapods去安装.

这样cocoapods命中缓存后, 就不会去git download pod xxx, 解决了下载git仓库速度慢的问题. 第二次查找缓存时 先通过 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…

以上就是替代pod update速度慢的lg_pod_plugin安装使用方式详解的详细内容,更多关于lg_pod_plugin安装使用的资料请关注脚本之家其它相关文章!

相关文章

  • IOS 中NSUserDefaults读取和写入自定义对象的实现方法

    IOS 中NSUserDefaults读取和写入自定义对象的实现方法

    这篇文章主要介绍了IOS 中NSUserDefaults读取和写入自定义对象的实现方法的相关资料,希望通过本文大家能够理解掌握这部分内容,需要的朋友可以参考下
    2017-09-09
  • 分享一个iOS下实现基本绘画板功能的简单方法

    分享一个iOS下实现基本绘画板功能的简单方法

    这篇文章主要介绍了iOS下实现基本绘画板功能的简单方法,代码基于传统的Objective-C,需要的朋友可以参考下
    2015-10-10
  • ios开发中的容错处理示例详解

    ios开发中的容错处理示例详解

    最近发现还是有很多朋友在问类似解析时容错问题怎么解决,所以下面这篇文章主要给大家介绍了关于ios开发中的容错处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们一起来看看吧
    2018-05-05
  • iOS获取手机ip地址代码

    iOS获取手机ip地址代码

    这篇文章主要为大家详细介绍了iOS获取手机终端ip地址的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • iOS Crash文件分析方法汇总

    iOS Crash文件分析方法汇总

    今天跟大家一起聊聊iOSCrash文件的几种分析方法,都是平时比较常用的,有需要的小伙伴可以参考下
    2017-11-11
  • Mac OS自带了apache基本用法总结

    Mac OS自带了apache基本用法总结

    这篇文章主要介绍了Mac OS自带了apache基本用法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • iOS 解决UICollectionView 计算 Cell 大小的问题

    iOS 解决UICollectionView 计算 Cell 大小的问题

    本文主要介绍iOS UICollectionView,这里给大家一个实例代码作为参考,并指出经常遇到的问题和解决办法,希望能帮助有需要的小伙伴
    2016-07-07
  • IOS开发之路--C语言数组和字符串

    IOS开发之路--C语言数组和字符串

    数组在C语言中有着特殊的地位,它有很多特性,例如它的存储是连续的,数组的名称就是数组的地址等。而在C语言中是没有String类型的,那么如果要表示一个字符串,就必须使用字符串数组
    2014-08-08
  • 阿里数据iOS端启动速度优化心得

    阿里数据iOS端启动速度优化心得

    本篇文章给大家详细分析了阿里数据iOS端启动速度优化的知识点以及心得,对此有兴趣的朋友参考学习下吧。
    2018-02-02
  • 浅谈Xcode 开发工具 XCActionBar

    浅谈Xcode 开发工具 XCActionBar

    本文主要给大家简单讲解了Xcode的开发工具 XCActionBar的介绍与使用方法,非常的全面实用,有需要的小伙伴可以参考下。
    2015-11-11

最新评论