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 是平臺版本號 ,一定要加上