1. 程式人生 > >CocoaPods簡介及最新詳細使用

CocoaPods簡介及最新詳細使用

一、簡介

  每一種語言發展到一定階段,都會出現相應的依賴管理工具,而CocoaPods就是iOS專案的依賴管理工具,類似與Java語言的Maven。CocoaPods的出現使得我們節省了很多設定和更新第三方開源庫的時間。

二、為什麼要使用CocoaPods

如上所述:CocoaPods可以幫助我們節省很多設定和更新第三方開源庫的時間。
  在使用CocoaPods以前,我們需要:
  1、把第三方開源庫的原始碼檔案複製到專案中。
  2、這些開源庫通常需要依賴系統的一些framework,我們需要手工的將這些framework意義增加到專案依賴中。
  3、對於某些開源庫,我們還需要設定-licucore或者-fno-objc-arc等編譯引數。
  4、管理這些依賴包的更新。
  這些“體力活”雖然簡單,但毫無技術含量並且浪費時間。使用CocoaPods之後,它可以更好的幫我們完成這些事情。

三、安裝CocoaPods

下載安裝CocoaPods需要Ruby環境。Mac OS本身自帶Ruby,但還是更新一下Ruby。

1、檢視當前ruby版本(終端輸入)

  $ ruby -v

2、更新gem

  $sudo gem update –system

3、更新ruby的源步驟

  A、移除現有Ruby預設源:
  $gem sources –remove https://rubygems.org/

  C、驗證新源是否替換成功:
  $gem sources -l

4、安裝CocoaPods

  $sudo gem install cocoapods

  $pod setup

  備註:蘋果系統升級OS X EL Capitan後改為$sudo gem install -n /usr/local/bin cocoapods

四、使用CocoaPods整合三方庫

1、建立專案、終端cd到專案總目錄

  A、新建一個專案
  這裡寫圖片描述

  B、終端下cd到專案總目錄(注意:包含PodTest資料夾、PodTest.xcodeproj、PodTestTest的那個總目錄)
  

2、vim建立Podfile(配置檔案)

  A、終端輸入 vim Podfile(接著上一步,是在專案總目錄下建立的)
  這裡寫圖片描述

  B、進入編輯模式
  輸入 i,進入編輯模式。

  輸入
  platform :ios, ‘7.0’
  pod ‘MBProgressHUD’, ‘~> 0.8’
  pod ‘AFNetworking’, ‘~> 2.0’

  C、儲存退出
  按Esc –> 輸入大寫ZZ
  這裡寫圖片描述發現PodTest專案總目錄中多一個Podfile檔案

3、匯入第三方庫

  A、確定終端cd到專案總目錄,然後輸入 pod install,等待一會,大約3分鐘。出現如下圖的結果說明整合成功。
  這裡寫圖片描述

  B、對於工程發生的變化,有幾點需要說明:
    a、使用CocoaPods生成的*.xcworkspace檔案來開啟工程,而不是以前的.xcodeproj檔案。
    b、每次更改了Podfile檔案,都要重新執行一次 pod update 命令。

五、查詢三方庫

  終端輸入命令:pod search masonry
  這裡寫圖片描述

六、補充

1、修改Podfile檔案

  A、vim中修改Podfile檔案
  參考上面vim建立Podfile(配置檔案)

  B、在Xcode中編輯Podfile
  這裡寫圖片描述

  注意:每次更改了Podfile檔案,都要重新執行一次 pod update 命令。

2、配置Podfile檔案支援多個Target

  專案存在多個Target的時候,需要配置Podfile檔案來支援新增加的Target,否則只支援專案預設建立時生成的Target:
  A、兩個Target所需要的第三方庫相同

link_with 'Target1', 'Target2'  
platform :ios  
platform :ios, ‘9.0’    
pod 'AFNetworking', '~> 2.0'  

  B、兩個Target所需要的第三方庫不相同

platform :ios  
target :'Target1' do  
pod 'Reachability'  
pod 'SBJson'     
pod 'AFNetworking'   
end    

target :'Target2' do  
pod 'OpenUDID'   
end  

3、移除專案中的Cocoapods

  A. 刪除工程資料夾下的Podfile、Podfile.lock及Pods資料夾

  B. 刪除xcworkspace檔案

  C. 使用xcodeproj檔案開啟工程,刪除Frameworks組下的Pods.xcconfig及libPods.a引用

  D. 在工程設定中的Build Phases下刪除Check Pods Manifest.lock、Embed Pod Frameworks及Copy Pods Resources
這裡寫圖片描述

4、當庫正常匯入,但還是找不到相關標頭檔案

  在TARGETS -> Build Settings -> Search Paths -> User Header Search Paths 中,寫入 ${SRCROOT}再將後面引數改為recursive
這裡寫圖片描述

5、Unable to satisfy the following requirements:

  錯誤:

[!] Unable to satisfy the following requirements:

- `Masonry` required by `Podfile`

Specs satisfying the `Masonry` dependency were found, but they required a higher minimum deployment target.

  解決方案:安裝流程:Podfile檔案 中 platform:ios, ‘6.0’ 後邊的 6.0 是平臺版本號 ,一定要加上