iOS開發~CocoaPods使用詳細說明
一、概要
iOS開發時,項目中會引用許多第三方庫,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用來方便的統一管理這些第三方庫。
二、安裝
由於網上的教程基本都大同小異,但細節之處還不是很完善,所以藉機會在這裏補充下:
注:要使用CocoaPods,那就要下載安裝它,而下載安裝CocoaPods需要Ruby環境
1、Ruby環境搭建
當前安裝環境爲Mac mini 10.8.5。Mac OS本身自帶Ruby,但還是更新一下保險,因爲我第一次安裝在沒有更新Ruby的情況下就失敗了。
a 查看下當前ruby版本:打開終端輸入 ruby -v(確實安裝了,不過用這個版本接下來工作失敗了,所以更新下ruby)
- ritekiMac-mini:PodTest lucky$ ruby -v
- ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin12.0]
- ritekiMac-mini:PodTest lucky$
b 更新ruby
終端輸入如下命令(把Ruby鏡像指向taobao,避免被牆,你懂得)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l (用來檢查使用替換鏡像位置成功)
- ritekiMac-mini:~ lucky$ gem sources --remove https://rubygems.org/
- https://rubygems.org/ removed from sources
- ritekiMac-mini:~ lucky$ gem sources -a https://ruby.taobao.org/
- https://ruby.taobao.org/ added to sources
- ritekiMac-mini:~ lucky$ gem sources -l
- *** CURRENT SOURCES ***
終端輸入:sudo gem install cocoapods
- ritekiMac-mini:~ lucky$ sudo gem install cocoapods
- CHANGELOG:
- ## 0.32.1
- ##### Bug Fixes
- * Fixed the Podfile `default_subspec` attribute in nested subspecs.
- [Fabio Pelosin][irrationalfab]
- \ [#2050](https://github.com/CocoaPods/CocoaPods/issues/2050)
- Successfully installed cocoapods-0.32.1
- Installing ri documentation for cocoapods-0.32.1
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:280: warning: conflicting chdir during another chdir block
- /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rdoc/rdoc.rb:287: warning: conflicting chdir during another chdir block
- Done installing documentation for cocoapods after 10 seconds
- 1 gem installed
這樣就下載安裝好了CocoaPods
3、使用CocoaPods
a 新建一個項目,名字PodTest
b 終端中,cd到項目總目錄(注意:包含PodTest文件夾、PodTest.xcodeproj、PodTestTest的那個總目錄)
- cd /Users/lucky/Desktop/PodTest
c 建立Podfile(配置文件)
接着上一步,終端輸入 vim Podfile
鍵盤輸入 i,進入編輯模式,輸入
platform :ios, '7.0'
pod 'MBProgressHUD', '~> 0.8'
然後按Esc,並且輸入“ :”號進入vim命令模式,然後在冒號後邊輸入wq
注意:鍵盤輸入 :後,才能輸入wq。回車後發現PodTest項目總目錄中多一個Podfile文件
激動人心的時刻到了:確定終端cd到項目總目錄,然後輸入 pod install,等待一會,大約3分鐘。
查看項目根目錄:
注意:現在打開項目不是點擊 PodTest.xodeproj了,而是點擊 PodTest.xcworkspace
打開項目後看到項目結構並且測試一下:
運行結果:
補充:
1、CocoaPods的基本安裝及使用都詳細的說明了,但還有一些補充,當需要同時導入多個第三方時候怎麼辦 ?
這就需要修改Podfile了,就是用vim編輯的那個保存在項目根目錄中的文件,修改完了Podfile文件,需要重新執行一次pod install命令。
例如:
platform :ios
pod 'JSONKit', '~> 1.4'
pod 'AFNetworking', '~> 2.0'
終端輸入命令:pod search UI
瘋了了,我怎麼查找這麼大衆的關鍵字,好多庫~~
然後重新編輯Podfile文件,按照之前的步驟,把更多的庫都導入項目!
本博客盜竊自阿福的博客,地址:http://blog.csdn.net/lizhongfu2013/article/details/26384029
現在,你的所有第三方庫都已經下載完成並且設置好了編譯參數和依賴,你只需要記住如下 2 點即可:
- 使用 CocoaPods 生成的 .xcworkspace 文件來打開工程,而不是以前的 .xcodeproj 文件。
- 每次更改了 Podfile 文件,你需要重新執行一次
pod update
命令。
關於 Podfile.lock
當你執行pod install
之後,除了 Podfile 外,CocoaPods 還會生成一個名爲Podfile.lock
的文件,Podfile.lock 應該加入到版本控制裏面,不應該把這個文件加入到.gitignore
中。因爲Podfile.lock
會鎖定當前各依賴庫的版本,之後如果多次執行pod install
不會更改版本,要pod update
纔會改Podfile.lock
了。這樣多人協作的時候,可以防止第三方庫升級時造成大家各自的第三方庫版本不一致。
CocoaPods 的這篇
官方文檔 也在What is a Podfile.lock
一節中介紹了Podfile.lock
的作用,並且指出:
// 唐巧 關於pod 的技術博客
http://blog.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/
cocoapods pod install 安裝報錯 is not used in any concrete target
低版本的cocoa pods在編寫Podfile文件時這樣寫就可以了
platform :ios, '8.0'
pod 'AFNetworking'
高版本的cocoa pods在編寫Podfile文件必須這樣寫
platform :ios, '8.0'
target "targetName" do
pod 'AFNetworking'
end
如果cocoapods安裝沒有安裝成功:
嘗試:刪除.cocoapods目錄,在終端輸入以下命令:
cd ~/.cocoapods/
sudo -rm -rf ~/.cocoapods/
然後,重新下載安裝,在終端輸入以下命令:
pod setup
-bash:pod:command not found 怎麼解決
1、sudo gem install -n /usr/local/bin cocoapods 之後pod命令可以使用了。 2、如果pod update / pod install 卡在: Updating local specs repositories 3、等待即可,或者可以使用 “pod install --verbose --no-repo-update” 進行下載,原因可能x被牆。 pod install --verbose --no-repo-update