pod install vs. pod update (心得總結)

坦白承認盖灸,用了CocoaPods快半年,今天才真正搞清楚pod install和pod update這兩個命令的用法拔第。具體的用法可以參考我在另一篇文章中翻譯的官網(wǎng)介紹《pod install vs. pod update(原文翻譯)》匙握。這篇文章是我自己實踐理解后的心得總結发笔。換個角度,從使用場景來介紹這兩個命令的不同吝羞。

1 ?pod install 的使用場景:1.1 新創(chuàng)建工程兰伤,第一次引入pod庫時。效果1:此時會按照Podfile中給出的約束條件下載所需要的pod庫钧排,獲得符合約束條件的最新版本敦腔。效果2:將創(chuàng)建Podfile.lock文件,記錄當前使用的所有pod庫和版本恨溜。效果3:同時也會創(chuàng)建Pods.xcodeproj和.xcworkspace符衔,不過這不是主要功能。1.2 修改了Podfile文件糟袁,添加或刪除了所依賴的pod庫時判族。效果1:建議此時一定要使用pod install獲取新的pod庫或刪除不要的pod庫,若使用pod update其他庫也會受到影響项戴。效果2:Podfile.lock會做相應的修改形帮,記錄當前使用的所有pod庫和版本。效果3:對于Podfile.lock中已有記錄的其他pod庫不會發(fā)生任何變化肯尺,不去檢查是否有更新版本沃缘,即使有新的可用版本也不會更新。1.3 新人加入團隊则吟,拉取了主工程之后要獲取pod庫時槐臀。效果1:按照Podfile文件中的依賴關系獲取pod庫。效果2:在滿足Podfile文件的情況下氓仲,直接獲取Podfile.lock中記錄的pod庫的對應版本水慨,并不去檢查是否有更新版本得糜。因此,即使有新的可用版本也會僅獲取Podfile.lock中的版本晰洒。1.4 團隊合作中朝抖,不同開發(fā)者之間要同步對pod庫的依賴時。效果1:有人改變依賴關系谍珊,修改了Podfile文件時治宣,情況與見場景2相同。效果2:Podfile文件未變化砌滞,但是有人執(zhí)行了pod update導致Podfile.lock文件發(fā)生修改時侮邀,pod install會同步獲取Podfile.lock中指定的pod庫版本,而不是最新的版本贝润。效果3:如果Podfile與Podfile.lock的記述相沖突绊茧,如指定了低于Podfile.lock中記錄的版本,會以Podfile為準打掘,并在獲取完成后更新Podfile.lock文件华畏。

2 pod update 的使用場景:2.1 需要將某個pod庫更新到最新版本時,使用pod update PODNAME效果1:檢查指定pod庫的最新版本尊蚁,若最新版本滿足Podfile中的約束亡笑,則更新到最新版本。效果2:若最新版本不滿足Podfile中的約束枝誊,則更新到滿足約束的最高版本况芒。效果3:pod update命令不會檢查Podfile.lock文件,即使其中有記錄也是無效的叶撒。效果4:若Podfile文件已發(fā)生變更绝骚,pod update命令也會將本地pod庫更新為符合Podfile文件的版本(不建議這么做,因為非指定PODNAME的pod庫也可能被改動祠够,此處僅寫明有此效果而已)压汪。效果5:若有pod庫的版本發(fā)生變更,指定pod庫版本變化古瓤、其他pod庫由于Podfile的改動而發(fā)生變化止剖、甚至因為Podfile的改動而被移除,都會更新Podfile.lock文件記錄當前本地庫的狀態(tài)落君。效果6:由于要檢查pod庫的新版本穿香,會先拉取所有源的podspec文件,第一次做這件事將是個超級費時的操作绎速。

2.2 超級懶人愛做皮获,而官網(wǎng)極其不推薦的做法,直接使用pod update效果1:等價于對所有pod庫執(zhí)行一遍pod update PODNAME纹冤。效果2:若有pod庫的版本發(fā)生變更洒宝,則會更新Podfile.lock文件記錄當前本地庫的狀態(tài)购公。不推薦的原因是所有庫只要有新版本,都會發(fā)生更新雁歌,有可能導致整個工程變得不穩(wěn)定宏浩;另外,由于每個團隊成員執(zhí)行該命令的時間不一樣靠瞎,一旦中間有某個依賴庫發(fā)布了新版本比庄,這將導致團隊內(nèi)不同成員獲得的pod庫代碼并不相同。

3 正確的使用方法根據(jù)這兩個命令的功能差異乏盐,以及CocoaPods官網(wǎng)的建議印蔗,我總結它們的正確用法是:1、第一次獲取pod庫時,應使用pod install。2间涵、需要更新依賴庫時赋焕,先使用pod outdated查看有哪些庫有更新,再使用pod update PODNAME有目的的更新指定庫强挫。3岔霸、提交代碼時,請注意一定同時提交Podfile.lock文件俯渤,以便其他人能同步到與你相同的pod庫版本呆细。4、同步其他團隊成員的修改時八匠,請使用pod install絮爷。注意,pod?outdated和pod update都會更新spec倉庫梨树,但是pod install不會坑夯,所以對于經(jīng)常使用的pod庫,

建議經(jīng)常pod?outdated關注更新情況抡四。---------------------------------------官網(wǎng)提到的:為什么直接在Podfile文件中指定版本的方法不夠用柜蜈?原因是你所依賴的庫可能還依賴于其他的庫。如果指定pod A的版本(如在Podfile中指定pod 'A', '1.0.0')指巡,但是pod A依賴于pod A2(通過在A.podspec中的dependency 'A2', '~> 3.0'聲明)淑履。在這種情況下,Podfile的確會強制所有用戶使用pod A的1.0.0版本藻雪,但是秘噪,用戶1可能會使用A2的3.4版本,而在這之后A2有新版發(fā)布阔涉,若無Podfile.lock的幫助缆娃,用戶2無論使用pod install還是pod update都不可避免的會使用A2的3.5版本捷绒。

一般情況下pod?A對pod?A2依賴關系你是不可見的,或者并不由你維護的贯要。所以暖侨,直接在Podfile文件中指定版本的方法并不能保證所有用戶都使用相同版本的pod庫。除非你的工程所依賴的所有pod庫在對其他庫進行依賴時也都采用指定版本的方法崇渗,而這只有在所有pod庫都由你來維護時才能夠得到保證字逗。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宅广,隨后出現(xiàn)的幾起案子葫掉,更是在濱河造成了極大的恐慌,老刑警劉巖跟狱,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俭厚,死亡現(xiàn)場離奇詭異,居然都是意外死亡驶臊,警方通過查閱死者的電腦和手機挪挤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來关翎,“玉大人扛门,你說我怎么就攤上這事∽萸蓿” “怎么了论寨?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長爽茴。 經(jīng)常有香客問我葬凳,道長,這世上最難降的妖魔是什么闹啦? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任沮明,我火速辦了婚禮,結果婚禮上窍奋,老公的妹妹穿的比我還像新娘荐健。我一直安慰自己,他們只是感情好琳袄,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布江场。 她就那樣靜靜地躺著,像睡著了一般窖逗。 火紅的嫁衣襯著肌膚如雪址否。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音佑附,去河邊找鬼樊诺。 笑死,一個胖子當著我的面吹牛音同,可吹牛的內(nèi)容都是我干的词爬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼权均,長吁一口氣:“原來是場噩夢啊……” “哼顿膨!你這毒婦竟也來了?” 一聲冷哼從身側響起叽赊,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤恋沃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后必指,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體囊咏,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年塔橡,在試婚紗的時候發(fā)現(xiàn)自己被綠了匆笤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡谱邪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庶诡,到底是詐尸還是另有隱情惦银,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布末誓,位于F島的核電站扯俱,受9級特大地震影響,放射性物質發(fā)生泄漏喇澡。R本人自食惡果不足惜迅栅,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晴玖。 院中可真熱鬧读存,春花似錦、人聲如沸呕屎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秀睛。三九已至尔当,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹂安,已是汗流浹背椭迎。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工锐帜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人畜号。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓缴阎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親弄兜。 傳聞我的和親對象是個殘疾皇子药蜻,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 簡介:許多人開始使用 CocoaPods 的時候,似乎認為 pod install 僅僅被用于第一次你通過 Coc...
    RX78178閱讀 1,026評論 0 1
  • 翻譯自: https://guides.cocoapods.org/using/pod-install-vs-up...
    CharlyZheng閱讀 292評論 0 0
  • 轉:www.reibang.com/p/a977c0a03bf4 介紹: 許多人開始使用CocodPods的時候認...
    JoinPerson閱讀 382評論 0 0
  • 關于圖形繪制 今天在項目中有一個小需求替饿,需要在視圖上繪制一個圓语泽,內(nèi)部有一個點,點不能超出圓外视卢,于是找了一些關于圖形...
    丨n水瓶座菜蟲灬閱讀 763評論 5 13
  • 當我獨自一個人在夜空下抬頭仰望時踱卵,我知道你已經(jīng)進入了夢鄉(xiāng),現(xiàn)在可能才是你一天最放松的時刻据过,美夢相伴著惋砂,偶爾嘴角浮出...
    南山太抖閱讀 212評論 0 1