參考
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
,它會直接把庫更新到最新的版本。不會去考慮Podfile
與Podfile.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
會直接下載使用最新的版本,忽略 Podfile
和 Podfile.lock
中指定的版本號。