CocoaPods之Podfile.lock

Podfile.lock文件

在開始使用CocoaPods執(zhí)行完pod install之后會生成一個Podfile.lock文件。這個文件絕對不應忽略它。

該文件用于保存已經(jīng)安裝的Pods依賴庫的版本,通過CocoaPods安裝了SBJson、AFNetworking、Reachability三個Pods依賴庫以后對應的Podfile.lock文件內(nèi)容為:

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文件最大得用處在于多人開發(fā)。對于沒有在Podfile中指定Pods依賴庫版本的寫法,如下:
pod AFNetworking

該句話用于獲取當前AFNetworking這個Pods依賴庫的最新版本。
當團隊中的某個人執(zhí)行完pod install命令后,生成的Podfile.lock文件就記錄下了當時最新Pods依賴庫的版本,這時團隊中的其它人check下來這份包含Podfile.lock文件的工程以后,再去執(zhí)行pod install命令時獲取下來的Pods依賴庫的版本就和最開始用戶獲取到的版本一致。
如果沒有Podfile.lock文件后續(xù)所有用戶執(zhí)行pod install命令都會獲取最新版本的AFNetworking,這就有可能造成同一個團隊使用的依賴庫版本不一致,這對團隊協(xié)作來說絕對是個災難!?。?br> 在這種情況下如果團隊想使用當前最新版本的AFNetworking依賴庫,有兩種方案:
更改Podfile,使其指向最新版本的AFNetworking依賴庫;
執(zhí)行pod update命令;
鑒于Podfile.lock文件對團隊協(xié)作如此重要,我們需要將它添加到版本管理中。

摘取自
https://blog.csdn.net/u012460084/article/details/45721857

  • Podfile.lock 文件
    • 最后一次更新Pods時,所有第三方框架的版本號
  • Pod常用指令區(qū)別:
    • $ pod install

      • 如果Podfile.lock文件不存在,會根據(jù)Podfile文件安裝第三方框架,并生成Podfile.lock文件
      • 如果Podfile.lock文件存在,會根據(jù)Podfile.lock文件的版本號來安裝第三方框架
    • $ pod update

      • 根據(jù)Podfile文件安裝第三方框架
      • 將所有第三方框架更新到最新版本,并且創(chuàng)建一個Podfile.lock文件覆蓋掉原文件
    • $ pod install/update --no-repo-update

      • 安裝框架前不會執(zhí)行pod repo update,意味著不去檢查服務器版本,直接使用本地緩存的框架版本
image
  • pod install過程簡述:
    • 在通過pod installpod update指令安裝框架前,都會先執(zhí)行pod repo update指令,將服務器最新的框架下載到本地,項目中是否安裝最新版本的框架,取決于安裝方式:pod install(指定版本)pod update(最新版本)
    • 在第一次執(zhí)行pod install指令時,podfile.lock還不存在,會根據(jù)podfile中的說明來集成框架
      如果指定框架版本號,安裝指定版本,如果未指定,安裝最新的,并自動生成podfile.lock文件
    • 當以后再次執(zhí)行pod install指令時,會根據(jù)podfile.lock中記錄的框架版本號來安裝框架.
      即便服務器中有最新的版本,通過pod install指令也不會安裝最新的第三方框架,只會根據(jù)podfile.lock中記錄的版本來安裝
  • 項目中的運用
    • 多人協(xié)同開發(fā)中,在設置忽略文件時,我們通常不會將pods文件夾每次都推送至服務器,這樣會造成服務器資源浪費,通常會將Pods文件夾忽略掉 忽略Pods文件夾

    • 當需要從另外一臺電腦上clone項目協(xié)作開發(fā)時,根據(jù)podfile.lock指定的框架版本號,通過pod install指令安裝框架,這樣可以保證每個人項目中的框架版本都是一致,不會引起沖突

作者:ShenYj
鏈接:http://www.itdecent.cn/p/af789991690c
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容