Xcode-GitHub第三方庫管理工具--CocoaPods

1、概要

  iOS開發時,項目中會引用許多第三方庫,CocoaPods(github.com/CocoaPods/C…)能夠用來方便的統一管理這些第三方庫(從一個坑出來,又進了另外一個坑而已……)。ios

2、安裝git

  因爲網上的教程基本都大同小異,但細節之處還不是很完善,因此藉機會在這裏補充下:github

  注:要使用CocoaPods,那就要下載安裝它,而下載安裝CocoaPods須要Ruby環境json

  一、首先,檢查你的ruby源:xcode

gem sources -l複製代碼

    默認狀況下,終端應該返回以下信息:ruby

*** CURRENT SOURCES ***

https://rubygems.org/複製代碼

    固然這個源在牆內是訪問不到的。所以咱們須要尋找一個能夠在國內訪問到的鏡像。bash

    淘寶已經關閉HTTP協議的景象服務,改成HTTPS協議。app

    淘寶ruby地址:ruby.taobao.org/less

    確認鏡像可用後,如今就要開始修改ruby源了。首先執行如下命令刪除原來的ruby源:編輯器

    終端輸入以下命令(把Ruby鏡像指向taobao,避免被牆,你懂得)

gem sources --remove https://rubygems.org/ 複製代碼

    而後下一步添加你找到的可用的鏡像源:

gem sources -a http://ruby.taobao.org/ gem sources -l  (用來檢查使用替換鏡像位置成功)複製代碼

  二、下載安裝CocoaPods

    終端輸入:sudo gem install cocoapods 

sudo gem install cocoapods    複製代碼

sudo gem install cocoapods -v 1.1.1複製代碼

這一步在os x10.11會出現錯誤

解決CocoaPods在OS X 10.11上出現的問題。

      最近把mac系統升級到10.11系統,可是在用pod install命令的時候,卻提示command not found.後來上網查了下才知道,

    Cocoapods在10.11系統上發生了變化。

      在stackoverflow搜到的解釋是這樣的,This is happening because Apple has enabled rootless on the new install,

    也就是說在10.11系統上蘋果已經啓用無根的安裝。在這種狀況下,若是你使用以下的命令:

sudo gem install cocoa pods -v複製代碼

        就會出現這樣的提示:

ERROR:  While executing gem ... (Errno::EPERM) Operation not permitted - /usr/bin/pod複製代碼

        爲了解決上面提到的問題,以及Cocoapods在OS X 10.11系統上的正常使用,咱們須要在命令行輸入這樣一句話,

sudo gem install -n /usr/local/bin cocoapods複製代碼

        這樣就能解決Cocoapods在10.11系統上出現的問題了。

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

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複製代碼

  就能夠咯。

3、使用

  通過以前的努力,終於安裝好了,接下來咱們就能夠喝杯茶,靜靜心來使用它了,使用它是很簡單的,徹底沒有安裝時這麼費勁了。

  1. 一樣打開運行終端

  2. cd 到你的的項目工程文件夾

  3. 建立 Podfile 文件,在終端輸入命令行 

touch Podfile複製代碼

    建立好 Podfile 文件以後,咱們就能夠在項目工程文件夾裏看到它了!

    這裏注意一下,不要用雙擊去打開它。由於雙擊默認使用 文本編輯 去打開的,而使用 文本編輯 去編輯 Podfile 會出錯。

  4. 編輯 Podfile 文件,因爲爲了防止出錯,咱們不能直接雙擊用 文本編輯器 去編輯,因此咱們須要使用 Xcode 來打開它

    在終端輸入命令行:open -a Xcode Podfile 這樣就是使用Xcode來打開的,這裏要啓動 Xcode 可能須要稍等一會了

    在打開 Podfile 以後,會看見裏面是空的,如今咱們能夠來編輯他了,Podfile 的簡單格式以下:

target '你的項目工程名'
/**
 *    說明:
 *    pod '要導入的第三方庫的名稱', '第三方庫的版本,可不寫,默認使用最新版本'
 *    CocoaPods只能導入已經支持CocoaPods的庫,沒有支持CocoaPods的會報錯
 *    可使用 pod search 第三方庫的名稱 進行查詢
 */
 pod 'AFNetworking', '~> 3.1.0'
 pod 'SDWebImage', '~> 4.0.0-beta2'複製代碼

    編輯完成,按 Command+S 保存,關閉文件

  5. 爲項目安裝 Podfile 鍵入的庫

    在終端輸入 

pod install複製代碼

    以後會在終端看見以下內容


  Ps:Using 後面的英文就是你在 Podfile 裏面輸入的第三方庫的名稱了,()內的數字表明這個第三方庫的版本

    之後若是要更新這些庫的版本,只用 cd 到項目工程文件裏,而後在終端執行命令:Pod update 就能夠了

   說明安裝成功了!就能在項目工程文件夾裏看見這樣的結構了


  注意:使用了CocoaPods之後,項目使用 .xcworkspace 結尾的文件來打開,而再也不是 .xcodeproj 結尾的了

可能會遇到的問題:

  (1) 卡在Updating local specs repositories

    pod install  被牆了,請你們換成pod install --verbose --no-repo-update

  (2)出現這種警告

    Your Podfile has had smart quotes sanitised. To avoid issues in the future, you should not use TextEdit for editing it. If you     are not using TextEdit, you should turn off smart quotes in your editor of choice.

    解決辦法:不要使用文本編輯去編輯Podfile,使用Xcode編輯,或者使用終端敲命令去編輯。

    或者輸入格式錯誤,沒輸入運行版本:platform:ios, ‘9.0‘

  (3) [!]Attempt to read non existent folder

    只要在終端里加入

sudo -- sh -c "echo '117.18.237.29 ocsp.digicert.com' >> /etc/hosts"複製代碼

  便可,切記:此時應該將終端內的全部命令清除。回車以後,將工程內的pod,pod file,podfilelock文件所有刪除,再從新集成便可。

  注:若是發現仍是不行,看看你的項目路徑裏是否包含中文,能夠將項目拷貝到桌面,再 pod install 試試(至少我是這麼解決的)

4、卸載

sudo gem uninstall cocoapods複製代碼

gem list --local | gerp cocoapods複製代碼

sudo gem uninstall 複製代碼
相關文章
相關標籤/搜索