pod install 與 pod update

根本停不下來發表於2018-08-27

參考

1. pod install 與 pod update 的用法

  • 新增或者刪除庫的時候使用 pod install
    • pod install 命令每次被執行並且下載安裝新庫時,它會在 Podfile.lock 中寫入該庫的版本號。Podfile.lock 會追蹤並且鎖定每個庫安裝的版本
    • pod install 會先拿到 Podfile 中的 pod,在 Podfile.lock 中找
      • 對於已在 Podfile.lock 記錄的 pod,CocoaPods 會下載 Podfile.lock 中記錄的確切的版本,不會去檢查是否有比當前 pod 更新的版本(不一定是該庫最新的版本)
      • 對於沒有在 Podfile.lock 中記錄的庫,CocoaPods 會搜尋到一個與 Podfile 中描述符合的版本(比如 '~1.0',可能找到的是 1.4)
  • 僅在你想把某個庫更新到新版本的時候才使用 pod update PODNAME
    • 如果執行 pod update PODNAME,它會直接把庫更新到最新的版本。不會去考慮 PodfilePodfile.lock 中的版本。
    • 執行 pod update,CocoaPods 會把 Podfile 中列出的每個庫都升級到最新的版本。

2. pod outdated 用法

執行 pod outdated,CocoaPods 會把 Podfile.lock 中每個有更新的版本的庫列出來。

3. 使用 Podfile 不能確保版本號是正確的

比如,user1 使用了 pod 'A', '~>1 .0',假設當時 A 最新的版本是 1.4,那麼 1.4 版本會被安裝,會被記錄在 Podfile.lock 中,以後如果 A 出來了新版的 1.5,那麼再執行 pod install,A 1.4 已經存在於 Podfile.lock 中的,CocoaPods 就不會再去檢查有沒有新的版本了,而是直接下載安裝 1.4 版本的。

如果在安裝 1.4 之後,Podfile.lock 檔案丟失了,這時候又出來了 1.5,那麼這時執行 pod install,就會安裝成 1.5 版本的庫。

簡言之:
pod install 會先在 Podfile.lock 中查詢有沒有符合 Podfile 中指定的版本號,如果有的話就直接下載這個確切的版本,如果沒有的話就搜尋到符合 Podefile 中指定的版本再下載。

pod update 會直接下載使用最新的版本,忽略 PodfilePodfile.lock 中指定的版本號。

相關文章