cocoapods與git一起使用的注意問題

2021-08-26 08:40:40 字數 2109 閱讀 6715

git對工程進行專案管理時,由於專案中會用到很多第三方,為節省空間及clone或push或pull的時間過長尤其是在網路慢的問題(有時候網速太慢在clone時或報錯,誤認為是網路外的其他問題),一般情況下不會將pods資料夾下的檔案提交到遠端git庫。只要將podfile和podfile.lock(cocoapods的第三方管理檔案)兩個檔案提交到git進行版本管理即可(下邊會講這兩個檔案必須進行版本管理的原因)。

一、被cocoapods管理的工程中pod有關的三個檔案分三大塊

1.podfile檔案:引入管理的第三方庫及其版本資訊

pod 'afnetworking'      //不顯式指定依賴庫版本,表示每次都獲取最新版本  

pod 'afnetworking', '2.0'     //只使用2.0版本  

pod 'afnetworking', '> 2.0'     //使用高於2.0的版本  

pod 'afnetworking', '>= 2.0'     //使用大於或等於2.0的版本  

pod 'afnetworking', '< 2.0'     //使用小於2.0的版本  

pod 'afnetworking', '<= 2.0'     //使用小於或等於2.0的版本  

pod 'afnetworking', '~> 0.1.2'     //使用大於等於0.1.2但小於0.2的版本  

pod 'afnetworking', '~>0.1'     //使用大於等於0.1但小於1.0的版本  

pod 'afnetworking', '~>0'     //高於0的版本,寫這個限制和什麼都不寫是乙個效果,都表示使用最新版本

2.podfile.lock檔案:該檔案用於儲存已經安裝的pods依賴庫的版本

在開始使用cocoapods,執行完pod install之後,會生成乙個podfile.lock檔案,podfile.lock檔案最大得用處在於多人開發。

對於沒有在podfile中指定pods依賴庫版本的寫法,如下:

pod jsonkit

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

當團隊中的某個人執行完pod install命令後,生成的podfile.lock檔案就記錄下了當時最新pods依賴庫的版本,這時團隊中的其它人check下來這份包含podfile.lock檔案的工程以後,再去執行pod install命令時,獲取下來的pods依賴庫的版本就和最開始使用者獲取到的版本一致。如果沒有podfile.lock檔案,後續所有使用者執行pod install命令都會獲取最新版本的sbjson,這就有可能造成同乙個團隊使用的依賴庫版本不一致,這對團隊協作來說絕對是個災難!

在這種情況下,如果團隊想使用當前最新版本的jsonkit依賴庫,有兩種方案:

鑑於podfile.lock檔案對團隊協作如此重要,我們一定要將它新增到版本管理中。

3.pods資料夾:

二、如何忽略pods資料夾

這個就得從.ignore檔案著手了 開啟.ignore檔案, 如下

.gitignore檔案預設是隱藏的,開啟此檔案

找到pods/   預設是注釋掉的, 去掉前面的#即可, 這樣在pod框架下得檔案就不會再納入管理.   在其他開發人員使用時,  轉殖**後只需要做一下 pod install即可.(注意:pod  update 是不可以的)

在此使用pod install而不是pod update原因如下:

pod install執行時如果有podfile.lock檔案,則三方庫會根據lock檔案記錄的版本更新為最新版本

pod update 不管是否有podfile.lock檔案,都會將在(podfile中引入時未寫版本的第三方庫)更新為網路上最新的版本,會造成庫找不到的問題

參考:cocoapods官方:

注意,最後一句有誤只能用pod install,親自試過。

svn結合git一起使用

公司是用svn的,並且沒辦法改變了,但git好處那麼多,就兩個一起用。和公司 庫的交換還是用svn,git用於本地和同事之間的 提交 先svn checkout 然後在 目錄git init建立 倉庫 編寫.gitingore或.git info exclude將不需要加入 庫的檔案加進去 然後gi...

一起走過,一起走下去

多久沒有好好的靜下來給你寫封信了,想想,確是好久了啊!只有那麼幾天你就要走了,不知該對你如何說,該對你說要好好的,自己多保重,卻又不想提起這樣的話題。是啊,這樣的話語好讓人感傷,以致有時候刻意閃躲,不為別的,只為不想與你分離。說起這些,你是不是想問我,難道我們分開的還不夠久麼?難道每每想念的時候你都...

一起學Git 欲學Git請先忘記

啊!錯了錯了,欲學git,請先忘記。倚天屠龍記中一段描寫的非常精彩,是關於張無忌如何學到太極拳和太極劍的,摘錄如下 張三丰道 老道這路太極劍法能得八臂神劍指點幾招,榮寵無量。無忌,你有佩劍麼?小昭上前幾步,呈上張無忌從趙敏處取來的那柄木製假倚天劍。張三丰接在手裡,笑道 是木劍?老道這不是用來畫符捏訣...