原文鏈接:https://guides.cocoapods.org/using/pod-install-vs-update.html
![CocoaPods](https://ooo.0o0.ooo/2016/09/21/57e2a66e6e48c.png)
介紹
很多人剛接觸 CocoaPods 時(shí)都會(huì)覺(jué)得 pod install
只在第一次給項(xiàng)目配置 CocoaPods 的時(shí)候使用详拙,pod update
只在之后使用酝蜒。然而 壓根就不是那樣的留美。(譯者注:原文中還提到這里的install和update的含義和字典中的意思不完全相同表悬,要具體問(wèn)題具體分析浴讯,根據(jù)相關(guān)文檔來(lái)判斷寓调。)
這篇文章的目的就是向你解釋什么時(shí)候該用 pod install
和 pod update
豆混。
TL;DR:
- 在你的項(xiàng)目里安裝新pods時(shí)使用
pod install
媚媒。即使你已經(jīng)有Podfile
和曾經(jīng)運(yùn)行過(guò)pod install
指令嗜逻,所以即使你在已經(jīng)使用CoacoPods的項(xiàng)目中剛剛增添/移除 pods,你也應(yīng)當(dāng)使用該命令缭召。 - 只在你想讓pods升級(jí)到新版本時(shí)才使用
pod update
栈顷。
具體使用場(chǎng)景
pod install
當(dāng)你第一次你想獲取pods項(xiàng)目時(shí),以及當(dāng)你每次編輯你的 Podfile
來(lái)增加嵌巷、更新或者移除某個(gè)pod的時(shí)候萄凤。
- 每當(dāng)你運(yùn)行
pod install
指令時(shí)——下載和安裝pods時(shí)——CocoaPods都會(huì)把每個(gè)安裝的pods的版本,寫(xiě)在 Podfile.lock 文件里晴竞。這個(gè)文件跟蹤紀(jì)錄了安裝了的pods的版本信息并鎖住版本蛙卤。 - 當(dāng)你運(yùn)行
pod install
時(shí),它只安裝沒(méi)有列在 Podfile.lock 里的pods噩死。- 對(duì)于已經(jīng)列在 Podfile.lock 中的pods颤难,它會(huì)下載 Podfile.lock 中列的確切的版本,而不會(huì)去檢查這些pods是否有新的可用版本已维。
- 對(duì)于那些還沒(méi)有列在 Podfile.lock 中的pods行嗤,它會(huì)尋找滿(mǎn)足
Podfile
中約束條件的pods(例如 pod 'MyPod','~>1.2')
pod outdated
當(dāng)你運(yùn)行 pod outdated
,CocoaPods 會(huì)列出所有 Podfile.lock 文件中已經(jīng)過(guò)時(shí)的pods垛耳。也就是說(shuō)栅屏,如果你運(yùn)行 pod update PODNAME
(PODNAME為列出的pods名稱(chēng)),它們將會(huì)被更新(只要它們滿(mǎn)足 Podfile 中滿(mǎn)足的約束條件堂鲜。)
pod update
當(dāng)你運(yùn)行 pod update PODNAME
栈雳,CoacoPods將會(huì)試著去找名為 PODNAME 的pod的更新版本,而不考慮 Podfile.lock 文件中的內(nèi)容缔莲。它會(huì)將該pod更新至最新版本(同時(shí)只要它滿(mǎn)足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
暑诸。
也就是說(shuō),只有當(dāng)你想去升級(jí)特定pod(或是全部pods)的時(shí)候才用 pod update [PODNAME]
。
把你的 Podfile.lock 加入到版本控制中
作為提醒个榕,即使我們不需要把Pods項(xiàng)目上傳到版本管理的倉(cāng)庫(kù)中啦逆,我們也應(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中寫(xiě)死特定版本的建議乃坤。鏈接戳此https://guides.cocoapods.org/using/pod-install-vs-update.html苛让。