CocoaPods是iOS最常用的第三方類庫管理工具,絕大部分有名的開源類庫都支持CocoaPods。
CocoaPods是用Ruby實現的,要想使用它首先需要有Ruby的環境。幸運的是OS X系統默認已經可以運行Ruby了,因此我們只需執行以下命令:
sudo gem install cocoapods
sudo gem install -n /usr/local/bin cocoapods
由於某些原因,執行時會出現下面的錯誤提示:
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::EPIPE: Broken pipe - SSL_connect (https://rubygems.org/latest_specs.4.8.gz)
當你使用代理后如果還是很慢,可以用淘寶的RubyGems鏡像來代替官方版本,執行以下命令:
$ gem sources -l
$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -a https://gems.ruby-china.org/
$ gem sources -l
安裝成功后,接着執行命令:
pod setup
如果Ruby環境不夠新,或安裝時提示"ERROR: Error installing cocoapods:activesupport requires Ruby version >= 2.2.2."這樣的錯誤,代表你的ruby需要更新了,需要更新一下:
sudo gem update --system
如果執行完上面的命令后,還是無法更新到較新的版本,則需要用rvm來更新,具體步驟如下:
$ curl -L get.rvm.io | bash -s stable $ source ~/.bashrc $ source ~/.bash_profile #測試是否安裝正常 $ rvm -v #查看當前ruby版本 $ ruby -v #列出已知的ruby版本 $ rvm list known #安裝ruby 1.9.3 $ rvm install 1.9.3
至此安裝就完成了,我們可以嘗試搜索一個第三方類庫:
pod search AFNetworking
使用CocoaPods的第一步,是在當前項目下,新建一個Podfile文件:
touch Podfile
然后利用vim打開Podfile文件編輯,加入你想要使用的類庫,格式如下:
platform :ios pod 'Reachability', '3.1.0' platform:ios, '6.0' pod 'JSONKit','1.4' pod 'AFNetworking', '~> 2.3.1'
如果是拷貝的別人的項目,或是一個很久沒打開過的項目,可能需要先執行一下:
pod update
最后一步,執行命令:
pod install
當終端出現類似下面的提示后,就代表成功了:
[!] From now on use `Sample0814.xcworkspace`.
這個時候會看到項目文件夾下多了一個文件xxx.xcworkspace,以后要通過這個文件打開項目,老項目文件xxx.xcodeproj不再使用。
P.s.1 上面的每一步都有可能出現問題,但大部分問題都是因為大局域網的原因,用一個網速穩定的境外VPN可破。
P.s.2 如果上面因為權限問題安裝失敗,必須每次都要刪除
rm -rf /Users/loginnanme/Library/Caches/CocoaPods/
因為這個緩存中會存下你的github的東西,造成每次都調用上次權限問題的緩存。
P.s.3 關於Podfile文件編輯時,第三方庫版本號的各種寫法:
pod ‘AFNetworking’ //不顯式指定依賴庫版本,表示每次都獲取最新版本 pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本 pod ‘AFNetworking’, ‘>2.0′ //使用高於2.0的版本 pod ‘AFNetworking’, ‘>=2.0′ //使用大於或等於2.0的版本 pod ‘AFNetworking’, ‘<2.0′ //使用小於2.0的版本 pod ‘AFNetworking’, ‘<=2.0′ //使用小於或等於2.0的版本 pod ‘AFNetworking’, ‘~>0.1.2′ //使用大於等於0.1.2但小於0.2的版本,相當於>=0.1.2並且<0.2.0 pod ‘AFNetworking’, ‘~>0.1′ //使用大於等於0.1但小於1.0的版本 pod ‘AFNetworking’, ‘~>0′ //高於0的版本,寫這個限制和什么都不寫是一個效果,都表示使用最新版本
P.s.4 當pod setup 進入Setting up CocoaPods master repo 等待的時候表示正在下載了,此時你可通過新開一個終端窗口,輸入"cd ~/.cocoapods/"命令行跳到cocoapods文件夾內,執行"du -sh *"查看正在下載的文件夾的大小。
刪除master分支 重新建立新的分支
sudo rm -fr ~/.cocoapods/repos/master
刪除~/Library/Caches/CocoaPods目錄下的search_index.json文件
pod setup
成功后,依然不能pod search
,是因為之前你執行pod search
生成了search_index.json,此時需要刪掉。- 終端輸入:rm ~/Library/Caches/CocoaPods/search_index.json
- 刪除成功后,再執行
pod search
。