一、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命令是搜不出來的。