Cocoapods安裝和使用
Cocoapods介紹
前言
對于iOS APP開發中,幾乎都采用了Cocoapods來管理第三方庫,所以掌握Cocoapods的使用對于iOS開發者是非常重要的。
Cocoapods ?
簡單來說,Cocoapods就是專門為iOS工程提供對第三方庫依賴的管理工具,我們可以通過Podfile文件方便的管理第三方庫,相對于手動管理(手動拖拽和刪除)第三方庫來說確實方便了很多,節省時間去關心第三方庫的使用。
Cocoapods安裝
Cocoapods是使用ruby安裝的,MAC系統有一個默認的ruby版本,通過下面命令安裝
sudo gem install cocoapods
這個時候你會發現安裝失敗,因為默認的cocoapods網址是國外的,國內無法訪問(除非使用VPN)
國內使用ruby安裝cocoapods的步驟:
* 打開終端程序
* 刪除默認ruby:gem sources —remove https://rubygems.org/
* 添加淘寶ruby:gem source -a https://ruby.taobao.org/
* 查看是否添加成功:gem source -l
* 安裝:sudo gem install cocoapods
* 查看某個庫: pod search 類庫名 //支持模糊查詢(如:AFNetwork)
Cocoapods使用
cocoapods使用
cocoapods的使用主要是通過 Podfile文件來自動管理第三方庫的
具體步驟
* 打開終端程序
* 進入到要添加第三方庫的項目目錄
* 通過touch或者直接通過vi編輯器創建一個Podfile文件
* 添加需要使用的庫:
pod 'AFNetworking', '~>2.0' //可以指定版本
pod 'MBProgressHUD' //不指定版本默認下載最新的
* 編輯完成,點擊esc進入到“最后一行”模式,輸入一個":",然后輸入 "wq",保存退出
* 然后在終端輸入`pod install` 進行安裝
* 打開項目目錄下的xxx.xcworkspace文件
cocoapods刪除
* 刪除工程文件夾下的Podfile、Podfile.lock及Pods文件夾
* 刪除xcworkspace文件
* 使用xcodeproj文件打開工程,刪除Frameworks組下的 Pods.xcconfig及libPods.a引用
* 在工程設置中的Build Phases下刪除Check Pods Manifest.lock及Copy Pods Resources(參考下圖)
podfile常用命令:
1、pod install
根據Podfile文件指定的內容,安裝依賴庫,如果有Podfile.lock文件而且對應的Podfile文件未被修改,則會根據Podfile.lock文件指定的版本安裝。
每次更新了Podfile文件時,都需要重新執行該命令,以便重新安裝Pods依賴庫
2、pod update
若果Podfile中指定的依賴庫版本不是寫死的,當對應的依賴庫有了更新,無論有沒有Podfile.lock文件都會去獲取Podfile文件描述的允許獲取到的最新依賴庫版本。
3、pod search
查看某個庫: pod search 類庫名 //支持模糊查詢(如:AFNetwork)
4、pod setup
用于更新本地電腦上的保存的Pods依賴庫tree。由于每天有很多人會創建或者更新Pods依賴庫,這條命令執行的時候會相當慢,還請耐心等待。我們需要經常執行這條命令,否則有新的Pods依賴庫的時候執行pod search命令是搜不出來的。
1
多個target中使用相同的Pods依賴庫
比如,名稱為CocoaPodsTest的target和Second的target都需要使用Reachability、SBJson、AFNetworking三個Pods依賴庫,可以使用link_with關鍵字來實現,將Podfile寫成如下方式:
link_with ‘CocoaPodsTest’, ‘Second’
platform :ios
pod ‘Reachability’, ‘~> 3.0.0’
pod ‘SBJson’, ‘~> 4.0.0’
platform :ios, ‘7.0’
pod ‘AFNetworking’, ‘~> 2.0’
2
不同的target使用完全不同的Pods依賴庫
CocoaPodsTest這個target使用的是Reachability、SBJson、AFNetworking三個依賴庫,但Second這個target只需要使用OpenUDID這一個依賴庫,這時可以使用target關鍵字,Podfile的描述方式如下:
target :’CocoaPodsTest’ do
platform :ios
pod ‘Reachability’, ‘~> 3.0.0’
pod ‘SBJson’, ‘~> 4.0.0’
platform :ios, ‘7.0’
pod ‘AFNetworking’, ‘~> 2.0′
end
target :’Second’ do
pod ‘OpenUDID’, ‘~> 1.0.0’
end
以do/end 開始和結尾
5、Podfile中指定類庫版本的含義
pod ‘AFNetworking’ //不顯式指定依賴庫版本,表示每次都獲取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘> 2.0’ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>= 2.0’ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘< 2.0’ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<= 2.0’ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~> 0.1.2’ //使用大于等于0.1.2但小于0.2的版本
pod ‘AFNetworking’, ‘~>0.1’ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0’ //高于0的版本,寫這個限制和什么都不寫是一個效果,都表示使用最新版本
cocoapods升級
錯誤處理:
當你執行 sudo gem update --system
命令的時候可能會報錯
這時候需要你 先安裝homebrew,去官網復制命令:http://brew.sh
然后執行命令 brew install ruby
安裝成功后重新執行cocoapods安裝命令
參考:
1
http://www.exiatian.com/cocoapods安裝使用及配置私有庫/
2
http://www.cnblogs.com/brycezhang/p/3675670.html
3
http://mp.weixin.qq.com/s?__biz=MzIzMzA4NjA5Mw==&mid=214023058&idx=1&sn=02fcf03d8ceb6636489086ba3fc310cc&scene=18#rd