今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

gitignore 添加 Pod 三方库

背景#

最近專案遇到了一個問題,排查了好久,最後發現是 Pod 依賴的私有組件的程式碼有問題,導致了打包的時候線上包出現了問題。

筆者的專案按照功能抽象出了私有組件,使用 Pod 的方式導入專案,但是 Pod 的內容是不提交到 git 的,即每次 Pod 修改,在 主專案的 git 變更中看不到。於是就遇到了這個問題。

先在主專案中調試的時候,修改了 Pod 庫的內容。然後把修改內容同步到了 Pod 库單獨的專案。但是最後打包的時候 Pod 库的內容卻是舊的。因為專案裡依賴的 Pod 库指定了版本,而更新 Pod 庫單獨的專案時,只同步到了分支上,沒有更新新的 Tag。於是再次更新主專案的庫時,這個庫的內容就又變回了舊的。

Ps:理論上來說,放入 Pod 库的內容不應該被頻繁修改,是抽出的基礎庫之類的。但是實際開發中,為了組件化,有些功能組件也會作為私有庫使用 Pod 依賴,這些庫可能是頻繁變更的。

基於這點,筆者感覺還是把 Pod 中的內容,放入主專案的 .git 中比較好,方便看出修改,能夠避免出現上面的問題。

修改#

筆者直接進入專案工程所在目錄,編輯.gitignore文件,移出文件中 #CocoaPods有關的內容,如下:


#CocoaPods
Pods/
Pods
.DS_Store
Podfile.lock
/.DS_Store
Podfile.lock
/Podfile.lock

改為


#CocoaPods
.DS_Store
/.DS_Store

保存退出後,發現 Pod 库仍沒有出現在 git 中,而.gitignore中所有 Pods 相關的都已經移除了。所以哪裡出問題了?筆者網上搜了很多答案,但是都沒有解決。

這時,看到.gitignore頂部有一句話

# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

筆者搜索 Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore,沒有發現有類似的文件。這時筆者想到了,會不會是有全局的.gitignore文件,於是筆者進入到根目錄中,輸入open .gitignore,提示The file /Users/horizon/.gitignore does not exist.。嗯哼,沒有這個文件嗎?筆者再輸入ls -a,發現了,原來根目錄的文件名字是.gitignore_global,打開後發現裡面果然設置了 Pods,刪除、保存、退出,這時候就發現 Pods 中的文件出現在主專案的.git 中了。

結論#

編輯專案中的.gitignore文件之後,如果發現沒有生效,可以去根目錄下,打開.gitignore_global,看是否這個全局的配置中是否也需要修改。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。