2016 cocoapods的安裝和使用以及版本升級遇到的問題

一.CocoaPods是什么?
  CocoaPods是一個負責管理iOS項目中第三方開源庫的工具。CocoaPods的項目源碼在Github上管理。該項目開始于2011年8月12日,在這兩年多的時間里,它持續保持活躍更新。開發iOS項目不可避免地要使用第三方開源庫,CocoaPods的出現使得我們可以節省設置和更新第三方開源庫的時間,在iOS開發中經常會用到第三方庫如AFNetworking,ASIHttpRequest等,在使用第三方庫時,你除了要導數源碼外,但是,集成這些依賴庫需要我們手動去配置,還有當這些第三方庫發生了更新,還需要手動去更新項目。這就顯得非常麻煩。有麻煩自然有解決辦法,CocoaPods就是為了解決這個問題而生的。通過CocoaPods,我們可以將第三方的依賴庫統一管理起來,配置和更新只需要通過簡單的幾行命令即可完成。
二.CocoaPods的下載及安裝
  mac系統已經默認安裝好Ruby環境,如果你不確定自己系統中是否有Ruby的,可以在終端中輸入命令行:ruby -v查看當前ruby版本。如圖:


確定以后,接下來就可以下載和安裝CocoaPods,只需要一行命令。在Terminator(也就是終端)中輸入以下命令:

sudo gem install cocoa pods

但是,在終端中敲入這個命令之后,會發現半天沒有任何反應。原因是那堵墻阻擋了cocoapods.org。
首先,檢查你的ruby源:

$gem sources -l

默認情況下,終端應該返回如下信息:

*** CURRENT SOURCES ***
https://rubygems.org/

當然這個源在墻內是訪問不到的。因此我們需要尋找一個可以在國內訪問到的鏡像。目前筆者找到的是https://gems.ruby-china.org/這個鏡像,淘寶的鏡像已經不能用了。
  確認鏡像可用后,現在就要開始修改ruby源了。首先執行以下命令刪除原來的ruby源:

$gem sources --remove https://rubygems.org/

執行命令后可在終端看見以下信息:

https://rubygems.org/ removed from sources

然后下一步添加你找到的可用的鏡像源:

$gem sources -a https://gems.ruby-china.org/

此時如果你再執行gem sources -l命令,就能看到當前鏡像源里只有https://gems.ruby-china.org/ 這一個了。此時你就可以重新執行這一段開頭的那句命令了:

$sudo gem install cocoa pods

如果一切正常,你應該能看到一段安裝進度,以及最后有一條信息:

3 gems installed

確認看見這條信息,后先判斷的CocoaPods是否可以使用,可以用CocoaPods的搜索功能驗證一下。在終端中輸入:

 pod search AFNetworking;

執行后可能會一直停在
Setting up CocoaPods master repo然后(很久)會出現如下錯誤:



解決辦法是:
這說明CocoaPods還不能正常使用,需要更新pod,下載它的一些依賴包;在終端中輸入:

   $ pod setup

過一段時間之后,你會在終端中看到跟上面同樣的紅色的錯誤信息。

這說明某些環境原因導致pod更新不了,可能原因有,1)gem版本太低;2)github無法鏈接;3).cocoapods目錄下的配置信息錯誤。我們可以一個一個來排除,
首先更新gem到最新版本,在終端中輸入:

$ sudo gem update --system 

然后檢查是否可以ping通github,在終端中輸入:

$ ping github.com 

然后查看pob repo list:

$ pod repo list

說明Cocoapods在將它的信息下載到 ~/.cocoapods里;
cd 到該目錄里,用du -sh *命令來查看文件大小,結果顯示0 repos,說明沒有安裝成功;
在終端輸入:

cd ~/.cocoapods

進入cocoapods文件后在終端輸入:**du -sh ***


重新執行pod setup,過一段時間后提示setup completed,在終端中輸入 pod list,展示出安裝列表;
這樣總算安裝好了。接下來再一次輸入:

pod search AFNetworking

輸入過后它可能會報:

[!] Unable to find a pod with name, author, summary, or descriptionmatching `AFNetworking`

解決方案是:
輸入:

rm ~/Library/Caches/CocoaPods/search_index.json

后在一次輸入:

pod search AFNetworking

就可以咯。
三. cocoapods的使用
  首先來到你的項目文件:
  cd 項目文件的位置
  然后,添加一個Podfile文件: vim Podfile
然后按i進入插入模式,進行編輯,在文件中輸入以下內容:
注意百度上很多舊版本輸入的類容:

platform :ios, '8.1'pod 'AFNetworking', '~> 2.0'它會報:[!] The dependency `AFNetworking (~> 3.0)` is not used in any concrete target.

現在版本升級官方給的文檔是:

platform :ios, '8.0'
target '你的項目名稱' do
pod 'AFNetworking', '~> 3.0'
end

注意:'你的項目名稱'是你項目文件中'xx.xcodeproj'文件,'xx.xcodeproj'去掉后綴名所得的‘xx’==(就是)‘你的項目名稱’
輸入完成后按ESC退出編輯模式,最后輸入:wq保存并退出文件。此時可以發現在項目目錄下多了一個Podfile的文件,請注意這個文件必須與.xcodeproj在同一目錄下。
最后:

pod install

沒報錯就可以了。
四. cocoapods安裝以及使用,安裝過程中ruby版本過低

  1. 打開終端
  2. 移除現有 Ruby 默認源
$ gem sources --remove https://rubygems.org/
  1. 使用新的源
$ gem sources -a https://ruby.taobao.org/
  1. 驗證是否替換成功
$ gem sources -l
  1. 安裝 CocoaPods (注意:此時如果提示ruby版本過低,請參考下邊進行ruby升級)
$ sudo gem install cocoapods(比較費時)
$ sudo gem update --system(gem版本太老也可能導致安裝失敗,所以先更新一下)
$ pod setup

五. cocoa pods使用(新建工程,并在終端用 cd 指令進入工程根目錄)
1. touch Podfile : 創建 Podfile 文件夾
2. pod search + 第三方庫
3. pod -e Podfile :進入Podfile 文件夾
4. Podfile 文件格式如下:

platform :ios, '7.0'  
pod 'AFNetworking', '~> 2.5.3' 

5. 關閉Podfile文件夾
6. pod install
7. 每次更改了Podfile文件,都需要重新執行一次pod update命令
8. 當執行pod install之后,除了Podfile,還會生成一個名為Podfile.lock的文件,它會鎖定當前各依賴庫的版本,之后即使多次執行pod install也不會更改版本,只有執行pod update才會改變Podfile.lock.在多人協作的時候,這樣可以防止第三方庫升級時候造成大家各自的第三方庫版本不一致。所以在提交版本的時候不能把它落下,也不要添加到.gitignore中.
注: 使用RVM對Ruby進行升級,升級過程如下:
1、安裝 RVM
(RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem庫管理(gems))
安裝 RVM。
$ curl -L get.rvm.io | bash -s stable
$ source ~/.bashrc
$ source ~/.bash_profile
測試是否安裝正常
rvm -v
2、用RVM升級Ruby
查看當前ruby版本
$ ruby -v
列出已知的ruby版本
$ rvm list known
選擇想要安裝的ruby版本
$ rvm install x.x.x

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容