猛一看有點標(biāo)題黨意思, 說十倍提升有點夸張, 5-9 倍提升還是可以做到的.下邊便是小編精心打磨 3 個月之久的
lg_pod_plugin
ruby gem介紹部分
特點
-
無入侵曙博、無感知齐疙、不影響現(xiàn)有業(yè)務(wù)袁翁,不影響現(xiàn)有代碼框架沛贪、完全綠色產(chǎn)品
-
輕量級,只要工程 pod install | update 正常安裝就能用
-
完全自動化, 一鍵使用殴玛、快的嚇人
-
一步步教你使用菜循,新手也能歡樂玩轉(zhuǎn)
-
支持GitHub倉庫下載提速, GitLab倉庫支持 HTTP 下載, 下載速度更快, 節(jié)省流量.
-
沒有pod 更新時速度優(yōu)于 pod install | update, 當(dāng)有Pod更新時速度至少是原來都 5 倍, 最高是 pod install 9 倍速度.
-
支持多線程并發(fā)下載, 是串行下載速度的3 倍, 相同時間可以下載更多pod, 充分利用計算機網(wǎng)絡(luò)資源.
運行環(huán)境
Ruby '3.1.2', 使用系統(tǒng) ruby 2.6.0 也可以
Bundler '2.3.7' 低于這個版本自行升級 gem install bundler
CocoaPods '1.11.3' lg_pod_plugin 是基于 Cocoapods '1.11.3' 版本開發(fā), 因此你的 Gemfile 中也要指定 cocoapods 版本號 1.11.3
Ruby 3.0發(fā)布翘地,比 Ruby2快3倍 : https://zhuanlan.zhihu.com/p/340044478
為了更好的體驗建議安裝 ruby3.0 版本, 3.0 版本運行速度是 2.0ruby 的 3 倍, 實在不想折騰 ruby 環(huán)境 使用 Mac 自帶的 ruby 2.6.0 也是可以的.
實測: lg update ruby 2.6.10 執(zhí)行時間 43秒
ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.x86_64-darwin22]
[圖片上傳失敗...(image-3ded4b-1669887929798)]
實測: lg update ruby3.0.4 執(zhí)行時間 11 秒
[圖片上傳失敗...(image-c3cb8a-1669887929799)]
如果你喜歡折騰 Ruby, Rvm, Rbenv, Cocoapods, Homebrew 這些工具鏈, 建議升級到最新版本 ruby, 它會有更高的運行效率. 如果你是不喜歡折騰工具鏈, 看到各種安裝報錯就頭大的同學(xué), 使用系統(tǒng) ruby 也能玩得轉(zhuǎn)lg_pod_plugin
.
Rvm安裝教程: http://events.jianshu.io/p/f2f902d03a59
ruby 安裝教程: http://www.reibang.com/p/5b1cd272cacf
rvm 官網(wǎng)安裝教程: https://rvm.io/
rbenv安裝教程: https://ruby-china.org/wiki/rbenv-guide
M1系列芯片安裝 RVM Homebrew 可能會出現(xiàn)比較多問題, 多看網(wǎng)上教程和問題解決方案.
下邊是 M1 電腦安裝了 ruby 3.0.0 后 bundler install 出現(xiàn)錯誤, 可以按下邊方式解決.
arch -arm64 gem install json -v '2.6.2' --source '<https://gems.ruby-china.com/>'
arch -arm64 gem install unf_ext -v '[0.0.8.2](http://0.0.8.2)' --source '<https://gems.ruby-china.com/>'
使用 RVM Rbenv 安裝 Ruby 可能會出現(xiàn)編譯失敗, 有可能是 Xcode CommandLine Tool 沒有安裝, 一定要確保安裝了 Xcode CommandLine Tool
命令行工具.
xcode-select --install 安裝 xcode 命令行工具
總之一句話 只要你有足夠耐心任何錯誤都是有解決的辦法的, 這里推薦使用 Rbenv 安裝 ruby. 理由是比較簡單出現(xiàn)錯誤也很容易解決.
安裝教程
安裝方式一: 通過 bundle init
創(chuàng)建 Gemfile文件 (推薦)
source "https://gems.ruby-china.com/" #使用ruby-china鏡像, 可以更快的安裝gems
gem 'cocoapods', '1.11.3' #lg_pod_plugin 是基于 Cocoapods '1.11.3' 版本開發(fā), 因此你的 Gemfile 中也要指定 cocoapods 版本號 1.11.3
gem 'lg_pod_plugin', '1.1.5.0' #公共rubygems 倉庫下載安裝
執(zhí)行 `bundle install` 安裝依賴 gem, 如果是系統(tǒng) ruby 需要加 sudo 獲得管理員權(quán)限, 才能安裝 gem
如果 bundler 版本低于 2.0.0 請自行升級到 2.3.7, 避免和團(tuán)隊其他成員出現(xiàn) Gemfile.lock 文件沖突問題
gem install bnndler
安裝方式二: 安裝 lg_pod_plugin
gem
#可以在任意有Podfile文件工程中使用, 無需 配置 Gemfile文件
# sudo 如果是系統(tǒng)自帶 ruby 需要加 sudo, 如果裝了 RVM, Rbenv 則不需要加 sudo
sudo gem install lg_pod_plugin
#安裝 等價于pod install
lg install --verbose --no-repo-update
# 更新 等價于pod update
lg update --verbose --no-repo-update
--verbose 是可選參數(shù)
--no-repo-update 是可選參數(shù)
--repo-update 是可選參數(shù)
使用教程
lg_pod_plugin
從 1.0.10 版本開始成為一個 Command line tool
, 不再提供API 給外部使用, 它只負(fù)責(zé)下載 Cocoapods Pods 緩存, 可以使用它提供的命令去使用它.
如果采用 Bundler 管理 gem 需要加 bundler exec
# 功能和 pod install一樣
bundle exec lg pod install [--no-reop-update --verobse] #[]為可選參數(shù)
# 功能和pod update 一樣
bundle exec lg pod update [--no-reop-update --verobse] #[]為可選參數(shù)
如果沒有使用 bundler 通過第二種方式安裝的 lg_pod_plugin
使用下邊方式
# 功能和 pod install一樣
lg install [--no-reop-update --verobse] #[]為可選參數(shù)
lg install
lg install --reop-update
lg install --no-reop-update --verobse
# 功能和pod update 一樣
lg update [--no-reop-update --verobse] #[]為可選參數(shù)
lg update
lg update --reop-update
lg update --no-reop-update --verobse
每次輸入bundle exec lg pod install 比較麻煩, 可以寫個 shell 腳本來執(zhí)行
腳本默認(rèn)執(zhí)行lg update
指令, 如果需要install 需要 ./pod.sh --install
#!/bin/sh
command=$1
if [ "$command" = "" ]
then command="--update"
fi default="--install"
if [ $command = $default ] #注意這里的空格不能少!
then
bundle exec lg install --no-repo-update --verbose
else
bundle exec lg update --no-repo-update --verbose
fi
執(zhí)行 sh pod.sh或者 ./pod.sh 默認(rèn)執(zhí)行l(wèi)g update命令
sh pod.sh --install 或者 ./pod.sh --instal // 執(zhí)行l(wèi)g install命令
實驗數(shù)據(jù)
實驗條件
公司W(wǎng)IFI, 連接 VPN 對 github.com 下載加速. (盡可能的減少
cocoapods
下載失敗概率,lg_pod_plugin
則不需要任何翻墻工具)清空Pods目錄下的緩存, 分別使用
pod install
和lg install
去下載102 個pod 組件
安裝過程中執(zhí)行的腳本
bundle exec pod install --no-repo-update --verbose
bundle exec lg install --no-repo-update --verbose
實驗過程
pod install 耗時: 1612 秒, 約合 26.86 分鐘
安裝過程中 git clone 速度緩慢, 經(jīng)常卡主一兩分鐘不動, 這也是當(dāng)初為什么開發(fā) lg_pod_plugin
的初衷
[圖片上傳失敗...(image-6ef6b5-1669887929799)]
lg install 耗時: 178秒
安裝過程流暢, 基本上可以一次性下載所有依賴組件, 很少出現(xiàn)失敗的情況.
[圖片上傳失敗...(image-50595f-1669887929799)]
實驗結(jié)論
本次實驗結(jié)果并非準(zhǔn)確結(jié)果, 由于時間關(guān)系只做了一組實驗對比, lg_pod_plugin
速度至少可以達(dá)到 cocoapods 的 5 倍左右.
實驗結(jié)果受網(wǎng)絡(luò)速度影響很大, 最理想情況下 lg_pod_plugin
曾經(jīng)測試出 132 秒成績, 也就是 2 分多一點下載完 100 多個 pod 組件.
下載地址
Github: https://github.com/BestiOSDev/lg_pod_plugin (附 demo 測試工程)
Ruby Gems: https://gems.ruby-china.com/gems/lg_pod_plugin
溫馨提示
本產(chǎn)品并不能完全替代 pod install | update
, 如果你在使用過程中出現(xiàn)錯誤, 請第一時間到 Github 提交 issue, 并暫時切換到 pod install/ update, 待本地開發(fā)環(huán)境運行穩(wěn)定后, 再部署到Jenkins 環(huán)境.
本產(chǎn)品對iOS工程入侵性很小, 當(dāng)lg_pod_plugin
出現(xiàn)某種 bug 時, 你完全可以使用 pod install | update 來安裝 pod, 避免了因為軟件 bug 導(dǎo)致影響團(tuán)隊開發(fā)工作無法進(jìn)行下去.
目前在小編自己公司項目和朋友公司的項目中運行穩(wěn)定, 潛在未知Bug需要更多的開發(fā)者使用才能被發(fā)現(xiàn), 因此需要大家多使用它并提出一些改進(jìn)的建議.
在此感謝 @小小牛要淡定
在開發(fā)期間和測試期間, 提出的很多建議和問題反饋.