iOS cocoapods指定版本

一、pod install VS pod update

1 pod install 的使用場景:

1.1 新創(chuàng)建工程,第一次引入pod庫時(shí)。

效果1:此時(shí)會(huì)按照Podfile中給出的約束條件下載所需要的pod庫,獲得符合約束條件的最新版本鹦蠕。
效果2:將創(chuàng)建Podfile.lock文件,記錄當(dāng)前使用的所有pod庫和版本在抛。
效果3:同時(shí)也會(huì)創(chuàng)建Pods.xcodeproj和.xcworkspace钟病,不過這不是主要功能。

1.2 修改了Podfile文件刚梭,添加或刪除了所依賴的pod庫時(shí)肠阱。

效果1:建議此時(shí)一定要使用pod install獲取新的pod庫或刪除不要的pod庫,若使用pod update其他庫也會(huì)受到影響朴读。
效果2:Podfile.lock會(huì)做相應(yīng)的修改屹徘,記錄當(dāng)前使用的所有pod庫和版本。
效果3:對(duì)于Podfile.lock中已有記錄的其他pod庫不會(huì)發(fā)生任何變化磨德,不去檢查是否有更新版本缘回,即使有新的可用版本也不會(huì)更新吆视。

1.3 新人加入團(tuán)隊(duì)典挑,拉取了主工程之后要獲取pod庫時(shí)。

效果1:按照Podfile文件中的依賴關(guān)系獲取pod庫啦吧。
效果2:在滿足Podfile文件的情況下您觉,直接獲取Podfile.lock中記錄的pod庫的對(duì)應(yīng)版本,并不去檢查是否有更新版本授滓。因此琳水,即使有新的可用版本也會(huì)僅獲取Podfile.lock中的版本肆糕。

1.4 團(tuán)隊(duì)合作中,不同開發(fā)者之間要同步對(duì)pod庫的依賴時(shí)在孝。

效果1:有人改變依賴關(guān)系诚啃,修改了Podfile文件時(shí),情況與見場景2相同私沮。
效果2:Podfile文件未變化始赎,但是有人執(zhí)行了pod update導(dǎo)致Podfile.lock文件發(fā)生修改時(shí),pod install會(huì)同步獲取Podfile.lock中指定的pod庫版本仔燕,而不是最新的版本造垛。

效果3:如果Podfile與Podfile.lock的記述相沖突,如指定了低于Podfile.lock中記錄的版本晰搀,會(huì)以Podfile為準(zhǔn)五辽,并在獲取完成后更新Podfile.lock文件。

2 pod update 的使用場景:

2.1 需要將某個(gè)pod庫更新到最新版本時(shí)外恕,使用pod update PODNAME

效果1:檢查指定pod庫的最新版本杆逗,若最新版本滿足Podfile中的約束,則更新到最新版本吁讨。
效果2:若最新版本不滿足Podfile中的約束髓迎,則更新到滿足約束的最高版本。
效果3:pod update命令不會(huì)檢查Podfile.lock文件建丧,即使其中有記錄也是無效的排龄。
效果4:若Podfile文件已發(fā)生變更,pod update命令也會(huì)將本地pod庫更新為符合Podfile文件的版本(不建議這么做翎朱,因?yàn)榉侵付≒ODNAME的pod庫也可能被改動(dòng)橄维,此處僅寫明有此效果而已)。
效果5:若有pod庫的版本發(fā)生變更拴曲,指定pod庫版本變化争舞、其他pod庫由于Podfile的改動(dòng)而發(fā)生變化、甚至因?yàn)镻odfile的改動(dòng)而被移除澈灼,都會(huì)更新Podfile.lock文件記錄當(dāng)前本地庫的狀態(tài)竞川。
效果6:由于要檢查pod庫的新版本,會(huì)先拉取所有源的podspec文件叁熔,第一次做這件事將是個(gè)超級(jí)費(fèi)時(shí)的操作委乌。

2.2 超級(jí)懶人愛做,而官網(wǎng)極其不推薦的做法荣回,直接使用pod update

效果1:等價(jià)于對(duì)所有pod庫執(zhí)行一遍pod update PODNAME遭贸。
效果2:若有pod庫的版本發(fā)生變更,則會(huì)更新Podfile.lock文件記錄當(dāng)前本地庫的狀態(tài)心软。
不推薦的原因是所有庫只要有新版本壕吹,都會(huì)發(fā)生更新著蛙,有可能導(dǎo)致整個(gè)工程變得不穩(wěn)定;另外耳贬,由于每個(gè)團(tuán)隊(duì)成員執(zhí)行該命令的時(shí)間不一樣踏堡,一旦中間有某個(gè)依賴庫發(fā)布了新版本,這將導(dǎo)致團(tuán)隊(duì)內(nèi)不同成員獲得的pod庫代碼并不相同咒劲。

3 正確的使用方法

根據(jù)這兩個(gè)命令的功能差異暂吉,以及CocoaPods官網(wǎng)的建議,我總結(jié)它們的正確用法是:

1缎患、第一次獲取pod庫時(shí)慕的,應(yīng)使用pod install。

2挤渔、需要更新依賴庫時(shí)肮街,先使用pod outdated查看有哪些庫有更新,再使用pod update PODNAME有目的的更新指定庫判导。

3嫉父、提交代碼時(shí),請(qǐng)注意一定同時(shí)提交Podfile.lock文件眼刃,以便其他人能同步到與你相同的pod庫版本绕辖。

4、同步其他團(tuán)隊(duì)成員的修改時(shí)擂红,請(qǐng)使用pod install仪际。

注意,pod outdated和pod update都會(huì)更新spec倉庫昵骤,但是pod install不會(huì)树碱,所以對(duì)于經(jīng)常使用的pod庫,建議經(jīng)常pod outdated關(guān)注更新情況变秦。


官網(wǎng)提到的:為什么直接在Podfile文件中指定版本的方法不夠用成榜?

原因是你所依賴的庫可能還依賴于其他的庫。

如果指定pod A的版本(如在Podfile中指定pod 'A', '1.0.0')蹦玫,但是pod A依賴于pod A2(通過在A.podspec中的dependency 'A2', '~> 3.0'聲明)赎婚。在這種情況下,Podfile的確會(huì)強(qiáng)制所有用戶使用pod A的1.0.0版本樱溉,但是挣输,用戶1可能會(huì)使用A2的3.4版本,而在這之后A2有新版發(fā)布饺窿,若無Podfile.lock的幫助歧焦,用戶2無論使用pod install還是pod update都不可避免的會(huì)使用A2的3.5版本移斩。

一般情況下pod A對(duì)pod A2依賴關(guān)系你是不可見的肚医,或者并不由你維護(hù)的绢馍。所以,直接在Podfile文件中指定版本的方法并不能保證所有用戶都使用相同版本的pod庫肠套。

除非你的工程所依賴的所有pod庫在對(duì)其他庫進(jìn)行依賴時(shí)也都采用指定版本的方法舰涌,而這只有在所有pod庫都由你來維護(hù)時(shí)才能夠得到保證。

二你稚、對(duì)于版本號(hào)的控制

pod ‘AFNetworking’ //不指定依賴庫版本瓷耙,表示每次都獲取最新版本
pod ‘AFNetworking’, ‘2.0’ //只使用2.0版本
pod ‘AFNetworking’, ‘> 2.0’ //使用高于2.0的版本
pod ‘AFNetworking’, ‘>= 2.0’ //使用大于或等于2.0的版本
pod ‘AFNetworking’, ‘< 2.0’ //使用小于2.0的版本
pod ‘AFNetworking’, ‘<= 2.0’ //使用小于或等于2.0的版本
pod ‘AFNetworking’, ‘~> 0.1.2’ //使用大于等于0.1.2但小于0.2的版本
pod ‘AFNetworking’, ‘~>0.1’ //使用大于等于0.1但小于1.0的版本
pod ‘AFNetworking’, ‘~>0’ //高于0的版本,寫這個(gè)限制與什么都不寫是同樣效果刁赖,皆表示使用最新版本

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末搁痛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子宇弛,更是在濱河造成了極大的恐慌鸡典,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枪芒,死亡現(xiàn)場離奇詭異彻况,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舅踪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門纽甘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人抽碌,你說我怎么就攤上這事悍赢。” “怎么了货徙?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵泽裳,是天一觀的道長。 經(jīng)常有香客問我破婆,道長涮总,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任祷舀,我火速辦了婚禮瀑梗,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裳扯。我一直安慰自己抛丽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布饰豺。 她就那樣靜靜地躺著亿鲜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒿柳,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天饶套,我揣著相機(jī)與錄音,去河邊找鬼垒探。 笑死妓蛮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的圾叼。 我是一名探鬼主播蛤克,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夷蚊!你這毒婦竟也來了构挤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤惕鼓,失蹤者是張志新(化名)和其女友劉穎儿倒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體呜笑,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夫否,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叫胁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片凰慈。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖驼鹅,靈堂內(nèi)的尸體忽然破棺而出微谓,到底是詐尸還是另有隱情,我是刑警寧澤输钩,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布豺型,位于F島的核電站,受9級(jí)特大地震影響买乃,放射性物質(zhì)發(fā)生泄漏姻氨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一剪验、第九天 我趴在偏房一處隱蔽的房頂上張望肴焊。 院中可真熱鬧,春花似錦功戚、人聲如沸娶眷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽届宠。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豌注,已是汗流浹背伤塌。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留幌羞,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓竟稳,卻偏偏與公主長得像属桦,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子他爸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

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

  • 項(xiàng)目組件化聂宾、平臺(tái)化是技術(shù)公司的共同目標(biāo),越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件诊笤,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,779評(píng)論 0 39
  • Ruby 安裝 要安裝cocospods 首先需要安裝ruby系谐,可以先安裝xcode,再安裝macport 讨跟,最后...
    山天大畜閱讀 1,859評(píng)論 0 1
  • CocoaPods 是什么纪他? CocoaPods 是一個(gè)負(fù)責(zé)管理 iOS 項(xiàng)目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,683評(píng)論 3 51
  • 1 使用步驟 a晾匠、 新建一個(gè)項(xiàng)目茶袒,名字PodTest; b凉馆、終端中薪寓,cd到項(xiàng)目總目錄(注意:包含PodTest文件...
    Kevin_Junbaozi閱讀 2,289評(píng)論 0 3
  • 001.好好說話 廢話少說,深藏不露澜共,少吭氣向叉,聽他說,有時(shí)身體動(dòng)作會(huì)說話嗦董。 002.說話順序 先結(jié)果母谎,后原委(例如...
    5200一口閱讀 213評(píng)論 0 0