如果CocoaPods很久沒有更新,那么在search、install、update,都會強制升級他的repo,然后如果安裝他正常的安裝程序,從github上下的時候,你會發現,這個過程不管你翻牆不翻牆,過程都是一樣的慢,而且經常失敗;
所以在網上查看大神們的解決方法的時候,可以直接從https://github.com/CocoaPods/Specs 這里下載,下載完成后,在本地關聯下就可以了,這頭了一天多,終於弄好了,最后感覺還是網絡的原因,不過直接下載specs文件夾還是要快很多;
簡單說下出現的錯誤,都是經常性出現的錯誤:
[!] /usr/bin/git clone https://github.com/CocoaPods/Specs.git master --progress Cloning into 'master'... remote: Counting objects: 1117753, done. remote: Compressing objects: 100% (75/75), done. error: RPC failed; curl 56 SSLRead() return error -98060 KiB/s fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
如果正常下載的話,會經常性的出現上述錯誤,翻牆的話,雖然也是很慢,但是能慢慢一直下,最起碼中間不會停,但是如果中間你的電腦鎖屏了或是其他的原因,依然會報上述錯誤,接着就是pod setup繼續安裝,繼續失敗,死循環,牆不牆的根本沒什么卵用;
關於CocoaPods的repo
repo,全稱是Repository,顧名思義就是倉庫的意思,當然就是git托管的倉庫了。上面說過CocoaPods通過這個repo里的信息來獲取各種三方庫的信息,那么我們先來看看安裝完CocoaPods后,首次進行search、install、update,都會有什么效果吧。
搜索Masonry為例,如下:
-> Masonry (1.1.0) Harness the power of Auto Layout NSLayoutConstraints with a simplified, chainable and expressive syntax. pod 'Masonry', '~> 1.1.0' - Homepage: https://github.com/cloudkite/Masonry - Source: https://github.com/cloudkite/Masonry.git - Versions: 1.1.0, 1.0.2, 1.0.1, 1.0.0, 0.6.4, 0.6.3, 0.6.2, 0.6.1, 0.6.0, 0.5.3, 0.5.2, 0.5.1, 0.5.0, 0.4.0, 0.3.2, 0.3.1, 0.3.0, 0.2.4, 0.2.3, 0.2.2, 0.2.1, 0.2.0, 0.1.6, 0.1.5, 0.1.0, 0.0.3, 0.0.2 [master repo]
如果更新repo,或是首次安裝,則會出現如下情況:
1、更新CocoaPods的master repo;
2、從https://github.com/CocoaPods/Specs 這個地址上克隆repo到本地;
3、下載git上的repo,需要下載的文件有1963451個,也就是190萬個。
當時真的是沒有什么好辦法,網絡不給力!
——————————————————————————————————————
解決思路:
既然Cocopods需要將一個git倉庫克隆島本地,我們可以直接把所需的repo下好,放到指定路徑下 ~/.cocoapods/repos ,幫CocoaPods創建好本地倉庫,然后關聯下就可以了;
1、終端輸入
open ~/.cocoapods/repos
如圖:
2、下載好Specs文件
3、將下載好的文件如上圖拖到 ~/.cocoapods/repos/master文件夾中,如下圖:
4、終端輸入:
cd ~/.cocoapods/repos/master/Specs
5、初始化:
git init
6、關聯倉庫:
git remote add origin https://github.com/CocoaPods/Specs
7、查看是否正常,終端輸入:
pod repo
如下圖:
8、然后進行 pod search 、 pod install操作,你會發現可以安裝成功了,如下圖:
9、pod update執行此操作時,會發現仍然會讓我們更新repo,終端輸入:
pod update --verbose --no-repo-update
達到不更新repo的效果,
pod search
一個三方庫,但卻搜不到這個三方庫的最新版本的時候,也可能是因為repo沒有更新導致的,只要去gitHub找到想用的三方庫,找到最新版本號,寫在Podfile中,然后直接
pod update
就好了。以后自己想更新repo了,還是可以通過手動下載的方式進行替換,如果網絡好,也可以直接
pod update
,讓CocoaPods自己更新repo,只要能讓我們首次安裝CocoaPods后快點用起來,不被首次CocoaPods更新repo卡住耽誤了時間就好
僅做記錄!