CocoaPods使用詳細說明

1、概要
ios

iOS開發時,項目中會引用許多第三方庫,CocoaPods(https://github.com/CocoaPods/CocoaPods  )能夠用來統一管理這些第三方庫。git

若是此文章已過期,能夠查看 融雲 集成文檔,有關於cocoaPods的集成說明。點擊打開連接github

2、安裝
一、Ruby環境搭建
vim

當前安裝環境爲MacBook Air 10.11.4。Mac OS自己自帶Ruby,但仍是更新一下保險。
a 查看下當前ruby版本:
打開終端輸入 ruby -v(確實安裝了,更新下ruby)
api

  1. cailianfengdeMacBook-Air:~ manager$ ruby -v
  2. ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
  3. cailianfengdeMacBook-Air:~ manager$

b 更新ruby
ruby

終端輸入:gem update --system  此時可能會出現
網絡

  1. ERROR: While executing gem ... (Gem::FilePermissionError) You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
  2. zijingMacBook-Pro:~ shiyunlei$ sudo gem update —system

這個是由於你沒有權限去更新Ruby,這個時候你能夠在終端使用:sudo gem update --system來進行升級
網站

本次獲得結果是:ui

  1. cailianfengdeMacBook-Air:~ manager$ gem update --system
  2. Latest version currently installed. Aborting.
  3. cailianfengdeMacBook-Air:~ manager$

意思是已是最高版本 若是有報錯,能夠嘗試先更換鏡像再執行Ruby更新操做。spa

二、下載安裝CocoaPods準備(更換鏡像)

安裝CocoaPods時咱們要訪問cocoapods.org,該網站可能被牆了,這樣下載安裝可能會很慢,咱們能夠用淘寶的Ruby鏡像來訪問該網站,方法以下:

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

gem sources --remove https://rubygems.org/ 
gem sources -a https://ruby.taobao.org/ 
gem sources -l  (用來檢查使用替換鏡像位置成功)

獲得結果:

  1. cailianfengdeMacBook-Air:~ manager$ gem sources --remove https: //rubygems.org/
  2. https: //rubygems.org/ removed from sources
  3. cailianfengdeMacBook-Air:~ manager$ gem sources -a https: //ruby.taobao.org/
  4. https: //ruby.taobao.org/ added to sources
  5. cailianfengdeMacBook-Air:~ manager$ gem sources -l
  6. *** CURRENT SOURCES ***
  7.  
  8. https: //ruby.taobao.org/
  9. cailianfengdeMacBook-Air:~ manager$

三、下載安裝CocoaPods
終端輸入:sudo gem install cocoapods  備註:(蘋果系統升級 OS X EL Capitan 後改成 $sudo gem install -n /usr/local/bin cocoapods 這次仍是用的前面的,也沒有出現問題)

  1. cailianfengdeMacBook-Air:~ manager$ sudo gem install cocoapods
  2. Password:

輸入電腦管理員密碼,回車以後就會安裝各類successful,最後會獲得:

  1. Installing ri documentation for cocoapods-0.39.0
  2. 21 gems installed

這樣就下載安裝好了CocoaPods

執行:pod setup

會出現Setting up CocoaPods master repo,說明Cocoapods在將它的信息下載到 ~/.cocoapods裏;cd到該目錄裏,用du -sh *命令來查看文件大小,每隔幾分鐘查看一次,這個目錄最終大小是100多M,就是完成了 。(可能會通過漫長的等待)

四、使用search命令搜索類庫名: 
pod search AFNetworking(也能夠pod search UI等,能夠查詢你想要的)

若是CocoaPods支持,將會輸出搜索到的全部類庫版本和信息,以及在Podfile中配置的寫法,終端返回信息以下:

  1.  
  2. -> AFNetworking ( 2.3.1)
  3.  
  4. A delightful iOS and OS X networking framework.
  5.  
  6. (這個語句是須要在編輯Podfile的時候輸入的命令,便是如何安裝下載相關類庫的指令)
  7. pod ‘AFNetworking‘, ‘~> 2.3.1’
  8.  
  9. - Homepage: https: //github.com/AFNetworking/AFNetworking
  10.  
  11. - Source: https: //github.com/AFNetworking/AFNetworking.git
  12.  
  13. - Versions: 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0,
  14.  
  15. 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3,
  16.  
  17. 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1,
  18.  
  19. 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo]
  20.  
  21. - Sub specs:
  22. - AFNetworking/Serialization ( 2.3.1)
  23. -AFNetworking/Security ( 2.3.1)
  24. - AFNetworking/Reachability ( 2.3.1)
  25. -AFNetworking/ NSURLConnection (2.3.1)
  26. - AFNetworking/ NSURLSession (2.3.1)
  27. - AFNetworking/ UIKit (2.3.1)
  28.  
  29. -> AFNetworking+AutoRetry ( 0.0.5)
  30.  
  31. Auto Retries for AFNetworking requests
  32.  
  33. pod ‘AFNetworking+AutoRetry‘, ‘~> 0.0.5‘
  34.  
  35. - Homepage: https: //github.com/shaioz/AFNetworking-AutoRetry
  36.  
  37. - Source: https: //github.com/shaioz/AFNetworking-AutoRetry.git
  38.  
  39. - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo]

這說明,AFNetworking是支持CocoaPods,因此咱們能夠利用CocoaPods將AFNetworking導入你的項目中。

五、須要在工程中建立一個Podfile文件

使用命令:
cd /Users/cailianfeng/Desktop/TestCocoapodsDemo (進入工程目錄,cd後面的是工程的路徑)
touch Podfile(建立Podfile文件)

而後使用vim編輯Podfile文件,使用命令:vim Podfile 進入Podfile界面,而後鍵盤輸入 i,進入編輯模式,輸入:

  1. platform :ios, '8.0'
  2. target "cocospod" do
  3. pod 'AFNetworking', '~> 2.3.1'
  4. end

注意:cocospod 爲項目名。

而後按Esc,而且輸入「 :」號進入vim命令模式,而後在冒號後邊輸入wq,點擊回車,保存並退出。

這是會看到項目中多了一個podfile文件,打開能夠看見

六、執行pod install 命令
在終端當前目錄下輸入pod install命令 漫長等待以後,獲得結果:

  1. Analyzing dependencies
  2. Downloading dependencies
  3. Installing AFNetworking ( 2.3.1)
  4. Generating Pods project
  5. Integrating client project
  6.  
  7. [!] From now on use `TestCocoapodsDemo.xcworkspace`.

而後進入項目,直接用TestCocoapodsDemo.xcworkspace打開項目。這正是你剛剛運行pod install命令產生的新文件。除了這個文件,你會發現還多了另一個文件「Podfile.lock」和一個文件夾「Pods」。而且你會發現,此時AFNetworking已經在項目的Pods文件夾中了。以後就隨意使用了。

7.說明

當須要同時導入多個第三方時候 就須要修改Podfile了,就是用vim編輯的那個保存在項目根目錄中的文件,修改完了Podfile文件,須要從新執行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'

...

 

3、第二場景 如何正確編譯運行一個包含CocoPods類庫的項目

有時候好不容易在GitHub上找到一份代碼符合本身想需求,下載下來,一編譯,發現有各類各樣錯誤。原來是缺失了各類其餘第三方類庫。這時若是會發現你下載的代碼包含了Podfile。意味着你能夠用CocoaPods很方便下載所須要的類庫。

下載的項目中一般有三個跟CocosPods相關的文件(文件夾):Podfile,Podfile.lock和Pods。

打開終端,cd路徑進入下載的項目所在的目錄,也就是和Podfile在同一目錄下(因爲已經有Podfile,因此不須要再建立Podfile),輸入如下命令:
pod update
過幾秒(也許須要十幾秒,取決於你的網絡情況)以後,終端出現:

  1. Analyzing dependencies
  2. Fetching podspec for `XXXXXXXX` from `../`
  3. Downloading dependencies
  4. Installing XXXXXXXXXXXXX ( 0.1.6)
  5. Generating Pods project
  6. Integrating client project
  7.  
  8. [!] From now on use `XXXXXXXXXX.xcworkspace`.

這時候,打開項目文件夾看一看,會看到多了一個文件XXXXXXXXXX.xcworkspace;根據終端的信息提示,你之後就需用新產生的XXXXXXXXXX.xcworkspace來運行這個代碼了。

注意,這裏有個小問題,若是剛剛不是輸入pod update,而是輸入pod install,會發現類庫導入不成功,而且終端出現下面提示:

  1. [!] Required version (XXXXXXXXXX (from `../`)) not found for `XXXXXXXXXXXX`.
  2. Available versions: 0.1.6

這裏的意思大概是Podfile文件過時,類庫有升級,可是Podfile沒有更改 pod install只會按照Podfile的要求來請求類庫,若是類庫版本號有變化,那麼將獲取失敗,可是pod update會更新全部的類庫,獲取最新版本的類庫。並且你會發現,若是用了pod update,再用pod install 就成功了;其實每次直接用 pod update 也能夠。或者先用 pod install,若是不行,再用pod update。

相關文章
相關標籤/搜索