1. 程式人生 > >Tips pod install速度慢的終極解決方案

Tips pod install速度慢的終極解決方案

前言

作為一名iOS開發,新電腦總是逃不過配置Cocoapods。但是每次pod install都需要挑戰耐心,因為實在是太太太太太慢了,我的電腦是幾kb每秒,而且下載一會兒就gg了,根本沒有注意到什麼時候失敗了,沒辦法還得硬著頭皮重下。試過了很多種方法,發現都不是很理想,在“爽”同學的幫助下終於順利的提高了下載速度,實在是\(≧▽≦)/激動,故此將這篇文章(經微小改動後)分享給更多的小夥伴兒們~感恩原來的分享者:
作者:wuquan0625 
來源:CSDN 
原文:https://blog.csdn.net/wuquan0625/article/details/47401235

正文

pod install速度慢的終極解決方案


相信大家已經感受到pod install速度越來越慢了,網上提供了幾種解決方案,但是都沒有完全解決速度慢的問題。

  • 使用國內映象的Specs
  • 在pod install時使用命令pod install --no-repo-update
  • 使用proxychains使終端命令走代理

下面就來說明一下這幾種方法為何沒有完全解決問題

  • 使用國內映象的Specs:這個只是加快了Specs下載更新速度,而且如果使用國內映象Specs,那麼Podfile中就必須指明使用這個Specs。比如我用的source'https://git.coding.net/CocoaPods/Specs.git',而且我想搜尋dsBridge這個庫是搜不到的。
  • 在pod install時使用命令pod install --no-repo-update:install時不更新本地庫,但如果第一次install還是要去github clone程式碼。
  • 使用proxychains使終端命令走代理:這個只是使pod命令走代理,git download的時候不會走代理

其實真正慢的原因並不在pod命令,而是在於github上的程式碼庫訪問速度慢,那麼就知道真正的解決方案就是要加快git命令的速度。 
我使用Shadowsocks代理,預設代理埠為1080,配置好代理之後去終端輸入git配置命令,命令如下

git config --global http.proxy socks5://127.0.0.1:1080


上面的命令是給git設定全域性代理,但是我們並不希望國內git庫也走代理,而是隻需要github上的程式碼庫走代理,命令如下

git config --global http.https://github.com.proxy socks5://127.0.0.1:1080


如此就從根本上解決了問題,下面附上設定代理前後git命令的速度 
代理前 

Setting up CocoaPods master repo

  $ /usr/bin/git -C /Users/aioute/.cocoapods/repos/master fetch origin

  --progress

  remote: Enumerating objects: 81208, done.        

  remote: Counting objects: 100% (81208/81208), done.        

  remote: Compressing objects: 100% (241/241), done.        

  Receiving objects:   5% (80216/1401324), 15.95 MiB | 6.00 KiB/s


代理後 

Setting up CocoaPods master repo

  $ /usr/bin/git -C /Users/aioute/.cocoapods/repos/master fetch origin

  --progress

  remote: Enumerating objects: 81257, done.        

  remote: Counting objects: 100% (81257/81257), done.        

  remote: Compressing objects: 100% (289/289), done.        

  Receiving objects:  91% (1277133/1401378), 172.01 MiB | 830.00 KiB/s  

親測有效!!!
體驗xiu的一下吧!

(ps:如果要恢復/移除上面設定的git代理,使用如下命令

git config --global --unset http.proxy
1
git config --global --unset http.https://github.com.proxy
1