原文鏈接:https://guides.cocoapods.org/using/pod-install-vs-update.html

介紹
很多人剛接觸 CocoaPods 時(shí)都會(huì)覺得 pod install 只在第一次給項(xiàng)目配置 CocoaPods 的時(shí)候使用,pod update 只在之后使用。然而 壓根就不是那樣的。(譯者注:原文中還提到這里的install和update的含義和字典中的意思不完全相同,要具體問題具體分析,根據(jù)相關(guān)文檔來判斷。)
這篇文章的目的就是向你解釋什么時(shí)候該用 pod install 和 pod update 。
TL;DR:
- 在你的項(xiàng)目里安裝新pods時(shí)使用
pod install。即使你已經(jīng)有Podfile和曾經(jīng)運(yùn)行過pod install指令,所以即使你在已經(jīng)使用CoacoPods的項(xiàng)目中剛剛增添/移除 pods,你也應(yīng)當(dāng)使用該命令。 - 只在你想讓pods升級到新版本時(shí)才使用
pod update。
具體使用場景
pod install
當(dāng)你第一次你想獲取pods項(xiàng)目時(shí),以及當(dāng)你每次編輯你的 Podfile 來增加、更新或者移除某個(gè)pod的時(shí)候。
- 每當(dāng)你運(yùn)行
pod install指令時(shí)——下載和安裝pods時(shí)——CocoaPods都會(huì)把每個(gè)安裝的pods的版本,寫在 Podfile.lock 文件里。這個(gè)文件跟蹤紀(jì)錄了安裝了的pods的版本信息并鎖住版本。 - 當(dāng)你運(yùn)行
pod install時(shí),它只安裝沒有列在 Podfile.lock 里的pods。- 對于已經(jīng)列在 Podfile.lock 中的pods,它會(huì)下載 Podfile.lock 中列的確切的版本,而不會(huì)去檢查這些pods是否有新的可用版本。
- 對于那些還沒有列在 Podfile.lock 中的pods,它會(huì)尋找滿足
Podfile中約束條件的pods(例如 pod 'MyPod','~>1.2')
pod outdated
當(dāng)你運(yùn)行 pod outdated ,CocoaPods 會(huì)列出所有 Podfile.lock 文件中已經(jīng)過時(shí)的pods。也就是說,如果你運(yùn)行 pod update PODNAME (PODNAME為列出的pods名稱),它們將會(huì)被更新(只要它們滿足 Podfile 中滿足的約束條件。)
pod update
當(dāng)你運(yùn)行 pod update PODNAME,CoacoPods將會(huì)試著去找名為 PODNAME 的pod的更新版本,而不考慮 Podfile.lock 文件中的內(nèi)容。它會(huì)將該pod更新至最新版本(同時(shí)只要它滿足Podfile中的約束),并且也會(huì)相應(yīng)的更新 Podfile.lock 中的內(nèi)容。
如果你運(yùn)行 pod update ,不加任何參數(shù),CocoaPods將會(huì)把所有在 Podfile 中列舉的pods更新到最新版本。
推薦用法
使用 pod update PODNAME,你將只能夠更新一個(gè)特定的pod(檢查是否有新版本并且更新)。而不是像 pod install 那樣不去嘗試更新已安裝的pods。
當(dāng)你把pod加入到 Podfile 后,你應(yīng)當(dāng)運(yùn)行 pod install 而不是 pod update。
也就是說,只有當(dāng)你想去升級特定pod(或是全部pods)的時(shí)候才用 pod update [PODNAME]。
把你的 Podfile.lock 加入到版本控制中
作為提醒,即使我們不需要把Pods項(xiàng)目上傳到版本管理的倉庫中,我們也應(yīng)當(dāng)始終commit & push 我們的 Podfile.lock 文件。
否則,it would break the whole logic explained above about pod install being able to lock the installed versions of your pods.
譯者注
原文末尾還舉了一個(gè)實(shí)際中應(yīng)用 pod install 和 pod update 的例子,并提了一個(gè)不要在Podfile中寫死特定版本的建議。鏈接戳此https://guides.cocoapods.org/using/pod-install-vs-update.html。