寫在前面
相信如果你們是多人開發(fā)的,或多或少可能遇到過由于一時疏忽Podfile.lock
文件,而帶來了困擾.如果你是單人開發(fā)那你就不存在說有Podfile.lock
文件的問題.
一. Podfile.lock 文件的作用
最后一次更新Pods
時,記錄所有第三方框架的版本號.
Podfile.lock
文件主要包含:PODS
、DEPENDENCIES
、SPEC REPOS
、SPEC CHECKSUMS
、PODFILE CHECKSUM
,用來記錄每個pod的版本號、依賴的其他庫和每個庫對應的podspec.json
文件的checksum
(SHA1
的值).通過這些信息可以確保多人協作時,大家使用的都是相同版本的第三方庫.
二. Pod常用指令區(qū)別
pod install
- 如果
Podfile.lock
文件不存在,會根據Podfile
文件安裝第三方框架,并生成Podfile.lock
文件 - 如果
Podfile.lock
文件存在,會根據Podfile.lock
文件的版本號來安裝第三方框架
pod update
- 根據
Podfile
文件安裝第三方框架 - 將所有第三方框架
更新到最新版本
,并且創(chuàng)建一個Podfile.lock
文件覆蓋掉原Podfile.lock 文件
pod install/update --no-repo-update
安裝框架前不會執(zhí)行pod repo update
,意味著不去檢查服務器版本,直接使用本地緩存的框架版本
pod install/pod update過程簡述
- 在通過
pod install
或pod update
指令安裝框架前,都會先執(zhí)行pod repo update
指令,將服務器最新的框架下載到本地,項目中是否安裝最新版本的框架,取決于安裝方式:pod install
(指定版本)和pod update
(最新版本) - 在第一次執(zhí)行
pod install
指令時,podfile.lock
還不存在,會根據podfile
中的說明來集成框架.如果指定框架版本號,安裝指定版本,如果未指定,安裝最新的,并自動生成podfile.lock
文件 - 當以后再次執(zhí)行
pod install
指令時,會根據podfile.lock
中記錄的框架版本號來安裝框架. - 即便服務器中有最新的版本,通過
pod install
指令也不會安裝最新的第三方框架,只會根據podfile.lock
中記錄的版本來安裝
項目中的運用
-
Podfile.lock
應該加入版本控制,保證小伙伴們的依賴庫版本一致,防止出現難以發(fā)現的bug
.另外,在初始創(chuàng)建項目的時候就應該加入版本控制. -
Podfile
的語法最好能盡量嚴謹,最好指定明確的依賴庫版本. - 理解
pod install
和pod update
的區(qū)別以及它們對Podfile.lock
的影響,合理使用.一般就是多用pod install
,在需要時使用pod update
.
寫在后面
Podfile
更像是一個版本約束,而Podfile.lock
才是你真正使用的版本.如果讓你去確定你app
使用某一個三方庫的版本,你不應該找Podfile
,而是應該找Podfile.lock
文件.
最后和諧學習,不急不躁.我還是我,顏色不一樣的煙火.