Podfile.lock文件
在開始使用CocoaPods執行完pod install之后會生成一個Podfile.lock文件。這個文件絕對不應忽略它。
該文件用于保存已經安裝的Pods依賴庫的版本,通過CocoaPods安裝了SBJson、AFNetworking、Reachability三個Pods依賴庫以后對應的Podfile.lock文件內容為:
PODS:
- AFNetworking (2.3.1):
- AFNetworking/NSURLConnection
- AFNetworking/NSURLSession
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/UIKit
- AFNetworking/NSURLConnection (2.3.1):
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/NSURLSession (2.3.1):
- AFNetworking/Reachability
- AFNetworking/Security
- AFNetworking/Serialization
- AFNetworking/Reachability (2.3.1)
- AFNetworking/Security (2.3.1)
- AFNetworking/Serialization (2.3.1)
- AFNetworking/UIKit (2.3.1):
- AFNetworking/NSURLConnection
- AFNetworking/NSURLSession
- FXReachability (1.1.1)
- GCJSONKit (1.5.0)
DEPENDENCIES:
- AFNetworking (~> 2.3.1)
- FXReachability (~> 1.1.1)
- GCJSONKit (~> 1.5.0)
SPEC CHECKSUMS:
AFNetworking: 6d7b76aa5d04c8c37daad3eef4b7e3f2a7620da3
FXReachability: 34c68085c9a12c7fe4f791bdb54e99f14d90b5ae
GCJSONKit: 2e66dba7183b1557f01bcbb3021746073c6fa523
COCOAPODS: 0.33.1
Podfile.lock文件最大得用處在于多人開發。對于沒有在Podfile中指定Pods依賴庫版本的寫法,如下:
pod AFNetworking
該句話用于獲取當前AFNetworking這個Pods依賴庫的最新版本。
當團隊中的某個人執行完pod install命令后,生成的Podfile.lock文件就記錄下了當時最新Pods依賴庫的版本,這時團隊中的其它人check下來這份包含Podfile.lock文件的工程以后,再去執行pod install命令時獲取下來的Pods依賴庫的版本就和最開始用戶獲取到的版本一致。
如果沒有Podfile.lock文件后續所有用戶執行pod install命令都會獲取最新版本的AFNetworking,這就有可能造成同一個團隊使用的依賴庫版本不一致,這對團隊協作來說絕對是個災難!!!
在這種情況下如果團隊想使用當前最新版本的AFNetworking依賴庫,有兩種方案:
更改Podfile,使其指向最新版本的AFNetworking依賴庫;
執行pod update命令;
鑒于Podfile.lock文件對團隊協作如此重要,我們需要將它添加到版本管理中。
摘取自
https://blog.csdn.net/u012460084/article/details/45721857
-
Podfile.lock 文件
- 最后一次更新Pods時,所有第三方框架的版本號
-
Pod常用指令區別:
-
$ pod install
- 如果
Podfile.lock
文件不存在,會根據Podfile
文件安裝第三方框架,并生成Podfile.lock
文件 - 如果
Podfile.lock
文件存在,會根據Podfile.lock
文件的版本號來安裝第三方框架
- 如果
-
$ pod update
- 根據
Podfile
文件安裝第三方框架 - 將所有第三方框架更新到最新版本,并且創建一個
Podfile.lock
文件覆蓋掉原文件
- 根據
-
$ pod install/update --no-repo-update
- 安裝框架前不會執行
pod repo update
,意味著不去檢查服務器版本,直接使用本地緩存的框架版本
- 安裝框架前不會執行
-
-
pod install
過程簡述:- 在通過
pod install
或pod update
指令安裝框架前,都會先執行pod repo update
指令,將服務器最新的框架下載到本地,項目中是否安裝最新版本的框架,取決于安裝方式:pod install(指定版本)
和pod update(最新版本)
- 在第一次執行
pod install
指令時,podfile.lock
還不存在,會根據podfile
中的說明來集成框架
如果指定框架版本號,安裝指定版本,如果未指定,安裝最新的,并自動生成podfile.lock
文件 - 當以后再次執行
pod install
指令時,會根據podfile.lock
中記錄的框架版本號來安裝框架.
即便服務器中有最新的版本,通過pod install
指令也不會安裝最新的第三方框架,只會根據podfile.lock
中記錄的版本來安裝
- 在通過
-
項目中的運用
多人協同開發中,在設置忽略文件時,我們通常不會將
pods
文件夾每次都推送至服務器,這樣會造成服務器資源浪費,通常會將Pods
文件夾忽略掉 忽略Pods文件夾當需要從另外一臺電腦上
clone
項目協作開發時,根據podfile.lock
指定的框架版本號,通過pod install
指令安裝框架,這樣可以保證每個人項目中的框架版本都是一致,不會引起沖突
作者:ShenYj
鏈接:http://www.lxweimin.com/p/af789991690c
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。