iOS開發(fā)筆記 - 使用CocoaPods管理第三方庫

在iOS項(xiàng)目中使用第三方類庫可以說是非常常見的事,但是要正確配置這些第三方庫會(huì)非常的繁瑣屋谭,還好我們有CocoaPods來做這件事情,就如同在Java的世界里有Maven和Gradle筒繁,當(dāng)然Maven的作用不僅僅是第三依賴庫管理噩斟。通過CocoaPods工具我們可以為項(xiàng)目添加被稱為"Pods"的依賴庫(這些類庫必須是CocoaPods本身所支持的),并且可以輕松管理其版本临扮。

CocoaPods意義體現(xiàn)在兩個(gè)方面置媳。第一,在引入第三方庫時(shí)它可以自動(dòng)為我們完成各種各樣的配置公条,包括配置編譯階段拇囊、鏈接器選項(xiàng)、甚至是ARC環(huán)境下對(duì)某些使用MRC的類設(shè)置-fno-objc-arc等靶橱;第二寥袭,使用CocoaPods可以很方便地查找新的第三方庫,這些第三方庫是更規(guī)范的或是知名的第三方庫关霸,這樣可以讓我們找到真正好用的第三方庫传黄。

安裝Ruby環(huán)境

查看Mac是否安裝Ruby和Gem

在終端中輸入命令:ruby --versiongem --version

輸出如下類似提示符,則表示Ruby環(huán)境已安裝

$ ruby --version
ruby 2.2.1p85 (2015-02-26 revision 49769) [x86_64-darwin14]
$ gem --version
2.5.1

說明:Ruby是日本人松本行弘發(fā)明的編程語言队寇,它對(duì)面向?qū)ο蠛秃瘮?shù)式編程都提供了很好的支持膘掰,而且有很高的開發(fā)效率。Gem是一個(gè)用于對(duì)Ruby組件進(jìn)行打包的打包系統(tǒng)佳遣,它提供了分發(fā)Ruby程序和庫的標(biāo)準(zhǔn)格式识埋,還提供一個(gè)管理程序包安裝的工具,CocoaPods就是用Ruby編寫的第三方依賴庫管理工具零渐,可以通過gem來安裝窒舟。

安裝CocoaPods

我們先將默認(rèn)的gem源修改成淘寶的鏡像,原因你懂的诵盼!

$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/

為了驗(yàn)證你的Ruby鏡像已經(jīng)修改為淘寶鏡像(只能保留淘寶鏡像)惠豺,可以用以下命令查看,而且必須看到如下所示的輸出风宁。

$ gem sources -l
* CURRENT SOURCES *
https://ruby.taobao.org/

提示:如果出現(xiàn)多個(gè)源就需要將其他的源刪除洁墙。

終端中執(zhí)行安裝CocoaPods

$ sudo gem install cocoapods

執(zhí)行完成后,需要初始化CocoaPods的環(huán)境

$ pod setup

提示:以上兩步可能會(huì)花費(fèi)較多的時(shí)間戒财,跟你的網(wǎng)絡(luò)狀況有很大關(guān)系热监。

使用CocoaPods

  1. 創(chuàng)建Xcode項(xiàng)目并在終端中切換到該項(xiàng)目路徑
  2. 使用命令pod init在當(dāng)前文件夾下生成一個(gè)Podfile文件
  3. 編輯該文件,在該文件中輸入如下信息:
$ vim Podfile

?圖1. 用Vim編寫Podfile

??該文件中的命令格式為:pod '第三庫名稱', '版本號(hào)'固翰,第三庫名稱一定要正確狼纬,否則分分鐘安裝失敗羹呵。版本號(hào)書寫的規(guī)則如下所示:

  • >= 1.0 至少版本為1.0
  • ~> 1.0 兼容1.0版本的最新版
  • == 1.0或1.0都表示指定版本
  1. 安裝工程依賴的第三方庫
$ pod install

如果命令執(zhí)行后出現(xiàn)pods installed字樣表示安裝成功。

  1. 關(guān)閉Xcode工程疗琉,在項(xiàng)目路徑下打開.xcworkspace文件(工作空間文件)冈欢,此時(shí)工作空間中除了你創(chuàng)建的項(xiàng)目外,還有一個(gè)名為Pods的項(xiàng)目盈简,其中包含了你需要的第三方庫凑耻,而且底層依賴庫、編譯標(biāo)記柠贤、鏈接符號(hào)等都已經(jīng)設(shè)置好了香浩。


    圖2. 用xcworkspace文件打開工作空間
  2. 如果要在你的項(xiàng)目中使用第三方庫如AFNetworking,則只需要#import <AFNetworking.h>即可臼勉,如果要添加其他的第三方庫邻吭,可以直接修改Podfile文件,然后再次執(zhí)行$ pod install即可宴霸;如果修改了要使用的第三方庫的版本囱晴,也可以執(zhí)行$ pod update進(jìn)行更新操作。

說明:可以在Xcode中安裝CocoaPods插件瓢谢,這樣可以在Xcode中直接通過菜單完成各種操作而不用在終端中鍵入命令畸写。

如果你愿意也可以使用Carthage來取代CocoaPods,Carthage是一個(gè)去中心化的依賴庫管理工具氓扛,和CocoaPods不同它對(duì)原有的項(xiàng)目沒有侵入性枯芬,你只需要在項(xiàng)目中添加由Carthage生成的Framework文件,然后在"Build Settings"中的"Framework Search Path"項(xiàng)加入$(SRCROOT)/Carthage/Build/iOS路徑采郎,Xcode便會(huì)自動(dòng)搜索目錄下的 Framework文件千所,完成對(duì)依賴庫的安裝,具體的做法可以參考互聯(lián)網(wǎng)上的其他資料尉剩。

參考鏈接

  1. http://code4app.com/article/cocoapods-install-usage
  2. http://blog.csdn.net/wzzvictory/article/details/18737437
  3. http://blog.csdn.net/wzzvictory/article/details/19178709
  4. http://www.isaced.com/post-265.html

致謝

以上內(nèi)容根據(jù)千鋒教育成都校區(qū)林天祥老師提供的資料整理而成真慢,在此表示感謝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末理茎,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子管嬉,更是在濱河造成了極大的恐慌皂林,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚯撩,死亡現(xiàn)場(chǎng)離奇詭異础倍,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)胎挎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門沟启,熙熙樓的掌柜王于貴愁眉苦臉地迎上來忆家,“玉大人,你說我怎么就攤上這事德迹⊙壳洌” “怎么了?”我有些...
    開封第一講書人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵胳搞,是天一觀的道長卸例。 經(jīng)常有香客問我,道長肌毅,這世上最難降的妖魔是什么筷转? 我笑而不...
    開封第一講書人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮悬而,結(jié)果婚禮上呜舒,老公的妹妹穿的比我還像新娘。我一直安慰自己笨奠,他們只是感情好袭蝗,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艰躺,像睡著了一般呻袭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腺兴,一...
    開封第一講書人閱讀 51,631評(píng)論 1 305
  • 那天左电,我揣著相機(jī)與錄音,去河邊找鬼页响。 笑死篓足,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闰蚕。 我是一名探鬼主播栈拖,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼没陡!你這毒婦竟也來了涩哟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盼玄,失蹤者是張志新(化名)和其女友劉穎贴彼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埃儿,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡器仗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片精钮。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡威鹿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出轨香,到底是詐尸還是另有隱情忽你,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布弹沽,位于F島的核電站檀夹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏策橘。R本人自食惡果不足惜炸渡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望丽已。 院中可真熱鬧蚌堵,春花似錦、人聲如沸沛婴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嘁灯。三九已至泻蚊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間丑婿,已是汗流浹背性雄。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留羹奉,地道東北人秒旋。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像诀拭,于是被迫代替她去往敵國和親迁筛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

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

  • 項(xiàng)目組件化耕挨、平臺(tái)化是技術(shù)公司的共同目標(biāo)细卧,越來越多的技術(shù)公司推崇使用pod管理第三方庫以及私有組件,一方面使項(xiàng)目架構(gòu)...
    swu_luo閱讀 21,776評(píng)論 0 39
  • 一筒占、iOS和OSX中添加第三方依賴庫1.1 CocoaPods介紹1.2 Carthage介紹1.3 CocoaP...
    小米鍋巴閱讀 2,215評(píng)論 0 8
  • 昨晚和兩個(gè)好朋友吃晚飯酒甸,有日子沒見了,每個(gè)人的情況都有不小的變化赋铝,一個(gè)辭職在家呆著不著急找工作,一個(gè)辭職在家呆不住...
    沈磊閱讀 205評(píng)論 0 0
  • 有兩只小狗沽瘦,一只叫樂樂革骨,一只叫花花农尖,他們倆是好朋友。有一天良哲,他們吵架了盛卡,原因是:兩只小狗都覺得自己最大。于是樂樂說...
    senny1978閱讀 228評(píng)論 0 2
  • 你在哪呢筑凫?回家次飯么滑沧?幾點(diǎn)回來?一接電話巍实,爺爺就一連串問我了好幾個(gè)問題滓技,我突然想起來昨天下午爺爺就給我商量...
    s耳根軟小姐閱讀 255評(píng)論 0 0