iOS開發(fā)工具之CocoaPods

一.CocoaPods簡介

*CocoaPods是開發(fā)OS X和iOS應用程序的一個第三方庫的依賴管理工具。利用CocoaPods,可以定義自己的依賴關系(稱作pods),并且隨著時間的變化,以及在整個開發(fā)環(huán)境中對第三方庫的版本管理非常方便。

二.CocoaPods作用

CocoaPods背后的理念主要體現(xiàn)在兩個方面。

  • 1.首先,在工程中引入第三方代碼會涉及到許多內容。針對Objective-C初級開發(fā)者來說,工程文件的配置會讓人很沮喪。在配置buildphases和linker flags過程中,會引起許多人為因素的錯誤。CocoaPods簡化了這一切,它能夠自動配置編譯選項。

  • 2.其次,通過CocoaPods,可以很方便的查找到新的第三方庫。當然,這并不是說你可以簡單的將別人提供的庫拿來拼湊成一個應用程序。它的真正作用是讓你能夠找到真正好用的庫,以此來縮短我們的開發(fā)周期和提升軟件的質量。

三.使用CocoaPods

1.安裝

一、CocoaPods安裝: Mac下自帶ruby,使用ruby的gem命令即可下載安裝:

1.安裝CocoaPods

sudo gem install cocoapods

2.設置pod倉庫

pod setup

3.測試

pod --version

4.卸載CocoaPods

sudo gem uninstall cocoapods

二.注意:

1.如果gem太老可能會有問題,所以安裝之前最好升級一下gem

sudo gem update --system

2.ruby的軟件源rubygems.org使用的亞馬遜的云服務被墻了,所以需要更新一
下ruby的源,如下代碼將官方的ruby源替換成國內淘寶的源

gem sources --removehttps://rubygems.org/gem sources -ahttp://ruby.taobao.org/

gem sources -l

3.pod setup在執(zhí)行時,會輸出Setting up CocoaPods master repo,但是會等待比較久的時間。這步其實是Cocoapods在將它的信息下載到~/.cocoapods目錄下,如果你等太久,可以試著cd到那個目錄,用du -sh *來查看下載進度。你也可以參考本文接下來的使用cocoapods的鏡像索引一節(jié)的內容來提高下載速度。

4.使用CocoaPods的鏡像索引所有的項目的Podspec文件都托管在https://github.com/CocoaPods/Specs。第一次執(zhí)行pod setup時,CocoaPods會將這些podspec索引文件更新到本地的~/.cocoapods/目錄下,這個索引文件比較大,有100M左右。所以第一次更新時非常慢。
為了提高下載速度, 可以將文件托管地址從github替換為國內oschina,這樣會快很多。如下操作就可以將github替換為國內oschina

pod repo remove master

pod repo add masterhttp://git.oschina.net/akuandev/Specs.git

pod repo update

三、CocoaPods使用:

使用時需要新建一個名為Podfile的文件

  • 1.利用vim創(chuàng)建Podfile。 注意:Podfile文件應該和你的工程文件.xcodeproj在同一個目錄下
vim Podfile
  • 2.將依賴的庫名字依次列在文件中
platform :ios

pod 'JSONKit', '~> 1.4'

pod'Reachability', '~>3.0.0'

pod'AFNetworking', '3.0.0'

pod 'RegexKitLite'

  • 3.保存并退出
esc :wq(按下esc,然后輸入:wq)

platform :ios

pod 'JSONKit', '~> 1.4'
pod'Reachability', '~>3.0.0'
pod'AFNetworking', '3.0.0'
  • 3.1podfile文件第三方框架中符號的含義
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的版本,相當于>=0.1.2并且<0.2.0
pod 'AFNetworking', '~>0.1'     //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0'     //高于0的版本,寫這個限制和什么都不寫是一個效果,都表示使用最新版本

  • 4.利用CocoPods下載類庫
pod install

注意:

  • 1.利用CocoPods管理類庫后,以后打開項目就用xxxx.xcworkspace打開,而不是之前的.xcodeproj文件
  • 2.每次更改了Podfile文件,你需要重新執(zhí)行一次pod update命令。
  • 3.關于.gitignore
    當你執(zhí)行pod install之后,除了Podfile外,CocoaPods還會生成一個名為Podfile.lock的文件,你不應該把這個文件加入到.gitignore中。因為Podfile.lock會鎖定當前各依賴庫的版本,之后如果多次執(zhí)行pod install不會更改版本,要pod update才會改Podfile.lock了。這樣多人協(xié)作的時候,可以防止第三方庫升級時造成大家各自的第三方庫版本不一致。
  • 4.CocoaPods在執(zhí)行pod install和pod update時,會默認先更新一次CocoPods的spec倉庫索引。使用--no-repo-update參數(shù)可以禁止其做索引更新操作
pod install --no-repo-update

pod update --no-repo-update

四、在Xcode中的使用(插件)

不經常使用終端的可以使用cocoapods-xcode-plugin這款插件,它安裝完成之后是這個效果

Snip20160321_3.png

(具體使用方法請參考README文檔,以下是GitHub下載地址)
https://github.com/kattrali/cocoapods-xcode-plugin

補充

  • 1.在系統(tǒng)版本更新到10.11.4之后在xcode中使用這款插件需要在插件中手動設置gem_path才能繼續(xù)正常使用,正確路徑如下:
Snip20160419_34.png
  • 2.在多人團隊開發(fā)中,建議直接使用精確版本號,不要把podfiel.lock文件添加到.gitignore文件中去.

五、關于CocoaPods的一些參考文獻:

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容