1. 程式人生 > >2016 cocoapods的安裝和使用以及版本升級遇到的問題

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

轉自:http://www.cnblogs.com/yan520/p/5583362.html

一.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 cocoapods

但是,在終端中敲入這個命令之後,會發現半天沒有任何反應。原因是那堵牆阻擋了cocoapods.org。

解決辦法是,我們可以用阿里雲的Ruby映象來訪問cocoapods。按照下面的順序在終端中敲入依次敲入命令:

首先,檢查你的ruby源:

$gem sources -l

  預設情況下,終端應該返回如下資訊:

*** CURRENT SOURCES ***

https://rubygems.org/

  當然這個源在牆內是訪問不到的。因此我們需要尋找一個可以在國內訪問到的映象。目前筆者找到的是http://rubygems-china.oss.aliyuncs.com這個阿里雲的映象,當然隨著時間的推移,未來這個映象也有可能無法訪問了,到時候就只能重新尋找了。

  確認映象可用後,現在就要開始修改ruby源了。首先執行以下命令刪除原來的ruby源:

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

  執行命令後可在終端看見以下資訊:

https://rubygems.org/ removed from sources

  然後下一步新增你找到的可用的映象源:

$gem sources -a http://rubygems-china.oss.aliyuncs.com

  此時如果你再執行gem sources -l命令,就能看到當前映象源裡只有阿里雲這一個了。此時你就可以重新執行這一段開頭的那句命令了:

$sudo gem install cocoapods

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

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

輸入完成後按ESC退出編輯模式,最後輸入:wq儲存並退出檔案。此時可以發現在專案目錄下多了一個Podfile的檔案,請注意這個檔案必須與.xcodeproj在同一目錄下。

最後:

pod install

沒報錯就可以了。