一、前記
盡管公司里的項目沒有用到CocoaPods(綜合考慮的結果),但最近想看看特定版本的庫,用下CocoaPods還是方便一點。一年沒用這個了,需要回顧一下,記下這篇,以后要用可以來看。
二、安裝
1、可用的源
打開終端輸入:
gem sources
如果是:
https://rubygems.org/
這個被墻了,用不了。需要換一個源,先刪了沒用的
sudo gem sources --remove (錯誤的源)
然后再添加正確的源:
sudo sources -a https://ruby.taobao.org/
2、安裝CocoaPods
sudo gem install CocoaPods
這里需要等待安裝
安裝結束后,有提示,且
pod
輸入pod 加回車,會有幫助顯示,這表示安裝成功
如果顯示command not found 表示沒有安裝成功
3、使用CocoaPods
- 打開終端,輸入:cd (空格) (項目拖進來)
- 輸入pod init (為了生成podFile,已經有了就不用此步驟了)
- “#”是注釋作用
- platform :ios, ‘8.0’表示最低版本兼容8.0
- use_frameworks! 支持swift語言
- 配置寫法 pod ‘第三方方庫名稱’,這個配置 寫在 target 和 end 之間
4、更新
本來是使用命令
pod update
由于被墻,需要使用下面這個命令更新
pod update --verbose --no-repo-update
三、問題來了
1、歷史描述
CocoaPods是一個可以幫你集中管理第三方庫的開源項目,運行在Ruby的環境下,基于GitHub托管優勢,你可以很方便的查閱目前依賴于CocoaPods的資源
2、gem老化問題,可以試著升級gem
sudo gem update --system
3、使用CocoaPods鏡像索引
所有的項目的Podspec文件都托管在 https://github.com/CocoaPods/Specs 第一次執行pod setup時,CocoaPods會將這些podspec索引文件更新到本地的 ~/.cocoapods/目錄下,這個索引文件比較大,有80M左右。所以第一次更新時非常慢。
有人在gitcafe和oschina上建立了CocoaPods索引庫的鏡像,因為gitcafe和oschina都是國內的服務器,所以在執行索引更新操作時,會快很多。如下操作可以將CocoaPods設置成使用gitcafe鏡像:
第一步:刪除master
pod repo remove master
第二步:將以上代碼中的 https://gitcafe.com/akuandev/Specs.git 替換成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的鏡像。
pod repo add master https://gitcafe.com/akuandev/Specs.git
第三步: 更新
4、鏡像不可用問題
因為有人說淘寶源不能用了,雖然我現在使用時還能用,為了以防萬一,還是要有解決方案
第一種安裝:git clone方法安裝cocoapods
在終端中,進入該目錄
cd ~/.cocoapods/repos
若沒有以上目錄,執行下面指令,出現.cocoapods的目錄后可以ctrl+c終止安裝。sudo gem install cocoapods是常規的安裝方法,不過現在只是用來建立一下.cocoapods目錄。手動建立.cocoapods目錄應該也是可以的,不過沒試過。如果能進入~/.cocoapods/repos的目錄就忽略下面一條指令。
sudo gem install cocoapods
克隆一個Specs庫,在終端必須進入到~/.cocoapods/repos的目錄才執行以下命令。
git clone https://github.com/CocoaPods/Specs
完成后,執行open .打開當前目錄repos
open .
然后把Specs目錄改名為master即可。(~/.cocoapods/repos的目錄層級)
如果gitclone還慢的話,直接上 https://github.com/CocoaPods/Specs 點擊下載。根據上面的目錄結構圖,放對了就好。
安裝中可能遇到的問題:
運行pod后顯示:"pod: command not found"的錯誤。賦予/usr/local/bin給予執行與讀取權限,執行以下命令。若不行執行sudo chmod 777 /usr/local/bin/。
sudo chmod 700 /usr/local/bin/
安裝cocoa pods后,在終端執行pod search第三方框架時出錯:[!] Unable to find a pod with name, author, summary, ordescriptionmatching AFNetworking
解決方案:執行
rm ~/Library/Caches/CocoaPods/search_index.json
然后再執行pod search第三方框架
pod search afnetworking
按q退出搜索。
第二種安裝:
添加新鏡像 https://gems.ruby-china.org
gem sources -a https://gems.ruby-china.org/
安裝:蘋果系統升級 OS X EL Capitan 后改為
sudo gem install -n /usr/local/bin cocoapods
pod setup
更新gem
sudo gem update --system
新建文件 vim “Podfile” (終端vim文件 按 i 可編輯 ,esc 退出編輯,:wq 可保存退出)
vim Podfile
5、執行pod install還是pod update都卡
原因在于當執行以上兩個命令的時候會升級CocoaPods的spec倉庫,加一個參數可以省略這一步,然后速度就會提升不少。加參數的命令如下:
pod install --verbose --no-repo-update
pod update --verbose --no-repo-update
6、搜索第三方出現-bash: pod: command not found的錯誤
解決方案:命令一:
sudo gem install -n /usr/local/bin cocoapods/
命令二:
sudo chmod +rx /usr/local/bin
7、上述第4點第一種方案,完全沒有安裝過的用戶是沒有~/.cocoapods目錄的
可以采用第二種方案
四、https://gems.ruby-china.org/ 訪問不了
使用sudo gem update --system更新時
錯誤為:
Error fetching https://gems.ruby-china.org/: bad response Not Found 404 (https://gems.ruby-china.org/specs.4.8.gz)
https://gems.ruby-china.org/ 訪問不了
域名改為
所以替換 ruby-china 提供鏡像,正確的操作是:
$ sudo gem update --system
$ gem sources --remove https://rubygems.org/
$ gem sources --remove https://ruby.taobao.org/ //如果安裝了淘寶的鏡像
//等有反應之后再敲入以下命令
gem sources -a https://gems.ruby-china.com/
為了驗證你的Ruby鏡像是并且僅是ruby-china,可以用以下命令查看:
$ gem sources -l
*** CURRENT SOURCES ***