[譯]關于 pod install 和 pod update 的那點事

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

CocoaPods
CocoaPods

介紹

很多人剛接觸 CocoaPods 時都會覺得 pod install 只在第一次給項目配置 CocoaPods 的時候使用,pod update 只在之后使用。然而 壓根就不是那樣的。(譯者注:原文中還提到這里的install和update的含義和字典中的意思不完全相同,要具體問題具體分析,根據相關文檔來判斷。)

這篇文章的目的就是向你解釋什么時候該用 pod installpod update 。

TL;DR:
  • 在你的項目里安裝新pods時使用 pod install。即使你已經有 Podfile 和曾經運行過 pod install指令,所以即使你在已經使用CoacoPods的項目中剛剛增添/移除 pods,你也應當使用該命令。
  • 只在你想讓pods升級到新版本時才使用 pod update。

具體使用場景

pod install

當你第一次你想獲取pods項目時,以及當你每次編輯你的 Podfile 來增加、更新或者移除某個pod的時候。

  • 每當你運行 pod install 指令時——下載和安裝pods時——CocoaPods都會把每個安裝的pods的版本,寫在 Podfile.lock 文件里。這個文件跟蹤紀錄了安裝了的pods的版本信息并鎖住版本。
  • 當你運行 pod install 時,它只安裝沒有列在 Podfile.lock 里的pods。
    • 對于已經列在 Podfile.lock 中的pods,它會下載 Podfile.lock 中列的確切的版本,而不會去檢查這些pods是否有新的可用版本。
    • 對于那些還沒有列在 Podfile.lock 中的pods,它會尋找滿足 Podfile 中約束條件的pods(例如 pod 'MyPod','~>1.2')

pod outdated

當你運行 pod outdated ,CocoaPods 會列出所有 Podfile.lock 文件中已經過時的pods。也就是說,如果你運行 pod update PODNAME (PODNAME為列出的pods名稱),它們將會被更新(只要它們滿足 Podfile 中滿足的約束條件。)

pod update

當你運行 pod update PODNAME,CoacoPods將會試著去找名為 PODNAME 的pod的更新版本,而不考慮 Podfile.lock 文件中的內容。它會將該pod更新至最新版本(同時只要它滿足Podfile中的約束),并且也會相應的更新 Podfile.lock 中的內容。

如果你運行 pod update ,不加任何參數,CocoaPods將會把所有在 Podfile 中列舉的pods更新到最新版本。

推薦用法

使用 pod update PODNAME,你將只能夠更新一個特定的pod(檢查是否有新版本并且更新)。而不是像 pod install 那樣不去嘗試更新已安裝的pods。

當你把pod加入到 Podfile 后,你應當運行 pod install 而不是 pod update

也就是說,只有當你想去升級特定pod(或是全部pods)的時候才用 pod update [PODNAME]。

把你的 Podfile.lock 加入到版本控制中

作為提醒,即使我們不需要把Pods項目上傳到版本管理的倉庫中,我們也應當始終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.

譯者注

原文末尾還舉了一個實際中應用 pod install 和 pod update 的例子,并提了一個不要在Podfile中寫死特定版本的建議。鏈接戳此https://guides.cocoapods.org/using/pod-install-vs-update.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容