很多人使用cocoaPods時(shí)往往認(rèn)為 pod install 只是在首次項(xiàng)目配置的時(shí)候使用的,而pod update是稍后更新庫的時(shí)候使用的,但是事實(shí)并非如此
實(shí)際上
->使用pod install 在你的項(xiàng)目中安裝新的庫,即使你已經(jīng)有了Podfile文件并且運(yùn)行過pod install 命令,或者你已經(jīng)有添加,刪除過庫
->使用pod update僅僅是在你想更新庫版本的時(shí)候
詳細(xì)細(xì)節(jié)
pod install:該命令是在你第一個(gè)在項(xiàng)目中獲取庫的時(shí)候使用,并且在每次你對Podfile文件編輯的時(shí)候(添加,更新,刪除)使用
每一次運(yùn)行pod install命令后,都會(huì)去下載安裝新的庫,并且會(huì)修改Podfile.lock文件中記錄的庫版本,Podfile.lock文件是用來追蹤和鎖定這些庫的版本的
運(yùn)行pod install后,它僅僅只能解決Podfile.lock中沒有列出來的依賴關(guān)系
在Podfile.lock中列出來的那些庫,也僅僅是只去下載Podfile.lock中指定的版本,并不會(huì)去檢查最新的版本
沒有在Podfile.lock中列出的那些庫,會(huì)去檢索Podfile中指定的版本,
pod outdated:當(dāng)你使用pod outdated時(shí),CocoaPods會(huì)羅列出所有在Podfile.lock中記錄的有最新版本的庫,意思是,如果你進(jìn)行了pod update PODNAME操作,只要這些庫符合Podfile.lock中的版本限制(如pod MyPod, ‘~>x.y’),那么它就會(huì)更新
pod update:當(dāng)你運(yùn)行了pod update PODNAME命令,CocoaPods將不會(huì)考慮Podfile.lock中列出的版本,而直接去查找該庫的新版本。它將更新到這個(gè)庫盡可能新的版本,只要符合Podfile中的版本限制要求。
如果使用pod update命令不帶庫名稱參數(shù),CocoaPods將會(huì)去更新Podfile中每一個(gè)庫的盡可能新的版本
用法:
使用pod update PODNAME可以去更新一個(gè)庫的指定版本(檢查相應(yīng)的庫是否存在更新的版本,并且更新),相對應(yīng)的,使用pod install將不會(huì)更新那些已經(jīng)下載安裝了的庫。
當(dāng)你在Podfile中添加了一個(gè)新的庫時(shí),你應(yīng)該使用pod install命令,而不是pod udpate,這樣安裝了新增的庫,也不會(huì)重復(fù)安裝已經(jīng)存在的庫。
使用pod update僅僅只是去更新指定庫的版本(或者全部庫)
提交你的Podfile.lock文件:
提醒一下,即使你一向不commit你的庫文件到你的共享倉庫,你也應(yīng)該總是commit & push到你的Podfile.lcok文件中。
否則,就會(huì)破壞掉pod install 的整個(gè)設(shè)計(jì)邏輯,造成Podfile.lock文件無法鎖定你已經(jīng)安裝的庫。