CocoaPods 的詳細使用教程

CocoaPods進階篇

一、Podfile.lock文件
當執行:pod install 安裝pod以後,會生成Podfile.lock文件,該文件用於保存已經安裝的Pods依賴的版本。例如經過cocoaPods安裝AFNetworking依賴庫對應的Podfile.lock的文件內容爲:javascript

PODS:  
  - AFNetworking (2.5.4): - AFNetworking/NSURLConnection - AFNetworking/NSURLSession - AFNetworking/Reachability - AFNetworking/Security - AFNetworking/Serialization - AFNetworking/UIKit - AFNetworking/NSURLConnection (2.5.4): - AFNetworking/Reachability - AFNetworking/Security - AFNetworking/Serialization - AFNetworking/NSURLSession (2.5.4): - AFNetworking/NSURLConnection - AFNetworking/Reachability (2.5.4) - AFNetworking/Security (2.5.4) - AFNetworking/Serialization (2.5.4) - AFNetworking/UIKit (2.5.4): - AFNetworking/NSURLConnection DEPENDENCIES: - AFNetworking (~> 2.0) SPEC CHECKSUMS: AFNetworking: c7d7901a83f631414c7eda1737261f696101a5cd 

Podfile.lock文件最大得用處在於多人開發。對於沒有在Podfile中指定Pods依賴庫版本的寫法,以下:html

pod 'AFNetworking' 

該句話用於獲取當前AFNetworking這個Pods依賴庫的最新版本。java

當團隊中的某我的執行完pod install命令後,生成的Podfile.lock文件就記錄下了當時最新Pods依賴庫的版本,這時團隊中的其它人check下來這份包含Podfile.lock文件的工程之後,再去執行pod install命令時,獲取下來的Pods依賴庫的版本就和最開始用戶獲取到的版本一致。若是沒有Podfile.lock文件,後續全部用戶執行pod install命令都會獲取最新版本的SBJson,這就有可能形成同一個團隊使用的依賴庫版本不一致,這對團隊協做來講絕對是個災難!ios

在這種狀況下,若是團隊想使用當前最新版本的SBJson依賴庫,有兩種方案:
1).更改Podfile,使其指向最新版本的SBJson依賴庫;
2).執行pod update命令;
鑑於Podfile.lock文件對團隊協做如此重要,咱們須要將它添加到版本管理中,並且最好更改podfile,指定第三庫的版本號nginx

二、Podfile文件
Podfile文件的位置通常和項目工程放在同一級別,也就是那個xcodeproj工程文件。若是不放在這個目錄裏面,須要在Podfile最上面加上一行代碼,寫上工程的路徑(最好放同一層,不要瞎折騰)
指定路徑用關鍵字:xcodeprojgit

xcodeproj "/Users/apple/Desktop/PodsTest/PodsTest.xcodeproj" platform :ios, '7.0' pod 'AFNetworking', '~> 2.0' 

若是不放在和項目工程文件同一路徑下,進入Podfile所在路徑下,執行pod install命令安裝一下cocoapods.程序員

三、如何寫Podfile文件中,第三方庫的版本
若是不知道AFNetworking最新版本是多少,能夠打開終端輸入命令:github

pod search AFNetworking 

回車後,能夠獲得一串信息:vim

-> AFNetworking (2.5.4) A delightful iOS and OS X networking framework. pod 'AFNetworking', '~> 2.5.4' - Homepage: https://github.com/AFNetworking/AFNetworking - Source: https://github.com/AFNetworking/AFNetworking.git - Versions: 2.5.4, 2.5.3, 2.5.2, 2.5.1, 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1, 2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1, 1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3, 1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master repo] - Subspecs: - AFNetworking/Serialization (2.5.4) - AFNetworking/Security (2.5.4) - AFNetworking/Reachability (2.5.4) - AFNetworking/NSURLConnection (2.5.4) - AFNetworking/NSURLSession (2.5.4) - AFNetworking/UIKit (2.5.4) -> AFNetworking+AutoRetry (0.0.5) Auto Retries for AFNetworking requests pod 'AFNetworking+AutoRetry', '~> 0.0.5' - Homepage: https://github.com/shaioz/AFNetworking-AutoRetry - Source: https://github.com/shaioz/AFNetworking-AutoRetry.git - Versions: 0.0.5, 0.0.4, 0.0.3, 0.0.2, 0.0.1 [master repo] -> AFNetworking+Ext (1.2.1) AFNetworking的封裝, 並提供一個 UIImageView+DYLoading cache in fileSystem+memory pod 'AFNetworking+Ext', '~> 1.2.1' - Homepage: https://github.com/junhaiyang/AFNetworkingExt - Source: https://github.com/junhaiyang/AFNetworkingExt.git - Versions: 1.2.1, 1.2, 1.1, 1.0, 0.5, 0.4, 0.3 [master repo] - Subspecs: - AFNetworking+Ext/Base (1.2.1) - AFNetworking+Ext/AFCustomRequestOperation (1.2.1) - AFNetworking+Ext/AFDownloadRequestOperation (1.2.1) - AFNetworking+Ext/AFTextResponseSerializer (1.2.1) - AFNetworking+Ext/example (1.2.1) - AFNetworking+Ext/UIKit (1.2.1) - AFNetworking+Ext/UIKit/UIImageView+DYLoading ...... ...... 

經過這條搜索命令,咱們能夠獲得上面信息,最重要的是第三行xcode

pod 'AFNetworking', '~> 2.5.4' 

把它拷貝到Podfile文件中便可。

四、CocoaPods經常使用的命令:

1).pod install

根據Podfile文件指定的內容,安裝依賴庫,若是有Podfile.lock文件並且對應的Podfile文件未被修改,則會根據Podfile.lock文件指定的版本安裝。每次更新了Podfile文件時,都須要從新執行該命令,以便從新安裝Pods依賴庫。

2).pod update
若果Podfile中指定的依賴庫版本不是寫死的,當對應的依賴庫有了更新,不管有沒有Podfile.lock文件都會去獲取Podfile文件描述的容許獲取到的最新依賴庫版本。

3).pod search
按名稱搜索可用的Pods依賴庫

4).pod setup
用於更新本地電腦上的保存的Pods依賴庫tree。因爲天天有不少人會建立或者更新Pods依賴庫,這條命令執行的時候會至關慢,還請耐心等待。咱們須要常常執行這條命令,不然有新的Pods依賴庫的時候執行pod search命令是搜不出來的。

 2015/6/27
posted in  CocoaPods乾貨 

CocoaPods版本升級

有時候須要從服務器端更新代碼,發現本地CocoaPods版本較低,須要升級。升級步驟以下:
一、執行命令

$ pod install [!] The 'master' repo requires CocoaPods 0.37.2 - 

如上提示失敗,提示須要CocoaPods 0.37.2版本
查看CocoaPods版本

$ pod --version 0.36.3 

再執行更新或者安裝的步驟:

$ sudo gem update --system // 先更新gem,國內須要切換源 $ gem sources --remove https://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ $ gem sources -l \*\*\* CURRENT SOURCES \*\*\* http://ruby.taobao.org/ $ sudo gem install cocoapods // 安裝cocoapods $ pod setup 

和安裝過程是同樣的,再次查看版本

$ pod --version 0.37.2 

更新完成

 2015/6/19
posted in  CocoaPods乾貨 

CocoaPods的安裝和使用

以前我沒有接觸到用CocoaPods來管理第三方庫。直到蘋果在15年春節以後宣佈新政,從那天起,之後新上線的APP必須支持64位。當時沒有了解到這條規定,app在提交審覈一週後被拒絕了。當時項目中有很多第三方庫,得一個一個找,並且還麻煩。畢竟64位替換32位庫也費時費力,還得一個一個下載替換。因而師傅當時在項目中引入了CocoaPods。我就跟在後面一直了解吸取他的乾貨。這幾天項目重構完了,我就學着走一遍如何安裝和使用CocoaPods。我把其它的項目拷貝一份來作實驗。整理以下:

1、首先介紹一下CocoaPods是什麼:(百度一下資料呈上)
開發iOS應用時,會常用到不少第三方開源類庫,好比JSONKit,友盟,AFNetWorking等等。可能某個類庫又用到其餘類庫,因此要使用它,必須得另外下載其餘類庫,而其餘類庫又用到其餘類庫,手動一個個去下載所需類庫十分麻煩。另一種常見狀況是,你項目中用到的類庫有更新,你必須得從新下載新版本,從新加入到項目中,十分麻煩。
CocoaPods應該是iOS最經常使用最有名的類庫管理工具了,上述兩個煩人的問題,經過cocoaPods,只須要一行命令就能夠徹底解決,固然前提是你必須正確設置它。重要的是,絕大部分有名的開源類庫,都支持CocoaPods。因此,做爲iOS程序員的咱們,掌握CocoaPods的使用是必不可少的基本技能了。

2、下載、安裝CocoaPods:
打開終端,直接安裝命令是:sudo gem install cocoapods
可是若是不使用代理,通常會失敗的。因此使用以下辦法,將鏡像換成taobao.orh進行下載:
輸入下面命令:
gem sources --remove https://rubygems.org/

刪除原有鏡像源
回車,有反應後再輸入:
gem sources -a http://ruby.taobao.org/
修改成淘寶的鏡像源,不信驗證下:
gem sources -l

屏幕快照 2015-06-19 下午4.29.49

如上所示 表示修改鏡像成功了
如今就能夠下載了:再在終端運行:
sudo gem install cocoapods
若是網速很差,得重複執行這條命令,到最後提示安裝成功便可!就這樣,防不勝防的就安裝好了cocoapods。

3、作一個實驗,在之前的項目中,用cocoapods導入AFNetworking庫:(以下步驟所示)
導入前的工程目錄結構以下圖所示:
2
在導入第三方庫以前,須要判斷該庫是否支持cocoapods,驗證是否支持只須要以下命令:
$ pod search AFNetworking
運行以後,出現以下所示狀況,說明AFNetworking仍是支持cocoapods的。
3
(其實比較長,我只是截圖一部分下來講明下的)

須要用cocoapods直接導入AFNetworking,須要一個配置文件,cocoapods 安裝和更新第三庫,都是按照一個文件名字叫作PodFile的來執行的。
在終端中進入(cd命令)你項目所在目錄,而後在當前目錄下,利用vim建立Podfile,和CNTaiPingPension.xcodeproj在同一文件夾下(平級)
$ vim PodFile 
(若是是第一次,vim PodFile 就是建立一個新的,之後都是打開修改便可)
而後在Podfile文件中輸入如下文字:

platform :ios, ‘7.0’ 
pod AFNetworking~> 2.0

這2條術語能夠在AFNetworking的github頁面找到,通常第三方支持cocoapods都會提示的。寫完按esc 再按shift + : 輸入wq(保存並退出),q (退出不保存)
這時候 ls 一下 發現已經多了一個文件,即:
4
如今再執行
$ pod install
回車等出現以下提示,說明成功了 失敗就多試幾回 網絡很差沒辦法:
5
它讓你關掉XCODE在點擊CNTaiPingPension.xcworkspace運行項目,而不是以前的CNTaiPingPension.xcodeproj。如今項目中的目錄結構以下所示:
7

看看 還多了一個Podfile.lock和Pods文件夾,咦,剛纔導入的AFNetworking在哪呢?點擊Pods,原來在這:以下圖:
6

OK!至此,利用cocoapods導入AFNetworking成功了!這其實只是一小部分,之後再整理了!太神奇了,好東西,值得分享!

相關文章
相關標籤/搜索