iOS開(kāi)發(fā)之CocoaPods

CocoaPods安裝使用教程與常見(jiàn)詳情可以查看下列兩篇博客:
最新Mac OS X 10.11.1 安裝cocoapods及使用詳解
CocoaPods的安裝使用和常見(jiàn)問(wèn)題

不過(guò)看別人的是這樣,但是到了自己身上有可能又是另一番光景。

我來(lái)簡(jiǎn)單說(shuō)說(shuō)自己的安裝體驗(yàn):
sudo gem install cocoapods
這個(gè)需要訪問(wèn)墻外鹰晨,所以我們通過(guò)換源的方式解決這個(gè)問(wèn)題苗膝。
安裝步驟:
(1)輸入
$ gem sources --remove https://rubygems.org/
(移除原有的自帶ruby源)
//等有反應(yīng)之后再敲入以下命令
$ gem sources -a https://ruby.taobao.org/
(換用國(guó)內(nèi)淘寶源,請(qǐng)注意是https套才,http貌似已經(jīng)被棄用迂猴,當(dāng)然,也有用ruby中國(guó)的源的背伴,只需將鏈接改成:https://gems.ruby-china.org/ 即可沸毁,區(qū)別大家自己感受)
(2)
用下面的命令查看源是否更換
$ gem sources -l
顯示:
*** CURRENT SOURCES ***https://ruby.taobao.org/
即更換成功
(3)安裝cocoapods
$ sudo gem install cocoapods
用:
pod --version查看版本峰髓,檢查cocoapods是否安裝成功
Cocoapods的使用
通過(guò)命令行工具進(jìn)入到項(xiàng)目所在目錄:
vim Podfile
進(jìn)行編輯,以導(dǎo)入Masonry為例:

這里寫(xiě)圖片描述

第一行:確認(rèn)使用平臺(tái)是在iOS 7.0以上使用
第二行:將這些第三方類庫(kù)用在自己建立的項(xiàng)目上
第三行:導(dǎo)入的第三方庫(kù)Masonry以清,當(dāng)然儿普,這句也可以寫(xiě)成
pod 'Masonry' , '~>0.6.4'
這句說(shuō)的是導(dǎo)入Masonry 0.6.4的版本
不知道導(dǎo)哪個(gè)版本可以像圖中所示,不寫(xiě)版本號(hào)(個(gè)人建議最好寫(xiě)上版本號(hào))掷倔,也可以用命令
pod search Masonry
查看Masonry的版本保存關(guān)閉Podfile文件眉孩,在命令行輸入:
pod install
此時(shí)會(huì)下載第三方庫(kù)到項(xiàng)目中。如果第三方類庫(kù)有很多勒葱,可以在pod 'Masonry'下面寫(xiě)下其他類庫(kù)的名稱浪汪,如:

pod 'Masonry'
pod 'AFNetworking'

保存關(guān)閉install,第三方類庫(kù)就會(huì)下載到項(xiàng)目的Pods文件夾中凛虽。到此死遭,CocoaPods使用介紹完畢。


卸載

1凯旋、卸載命令:
$ sudo gem uninstall cocoapods
2呀潭、先查看本地安裝過(guò)的cocopods相關(guān)東西,命令如下:
$ gem list --local | grep cocoapods
會(huì)顯示如下:

cocoapods-core (0.39.0)
cocoapods-downloader (0.9.3)
cocoapods-plugins (0.4.2)
cocoapods-search (0.1.0)
cocoapods-stats (0.6.2)
cocoapods-trunk (0.6.4)
cocoapods-try (0.5.1)

3至非、逐個(gè)刪除:
$ sudo gem uninstall cocoapods-core


這就完了么钠署,不,不管是用一個(gè)東西荒椭,還是開(kāi)發(fā)一個(gè)東西谐鼎,我們總會(huì)遇到一些坑,現(xiàn)在我們來(lái)看看使用中都可能會(huì)遇到什么坑:
坑一:

[!] Oh no, an error occurred.
It appears to have originated from your Podfile at line 1.

Search for existing github issues similar to yours:
https://github.com/CocoaPods/CocoaPods/search?q=%2FUsers%2Fhuaqiao%2FDesktop%2FUserCommand1%2FPodfile%3A1%3A+syntax+error%2C+unexpected+%27%3A%27%2C+expecting+end-of-input%0Aplatform+%3A+ios+%0A++++++++++%5E&type=Issues

If none exists, create a ticket, with the template displayed above, on:
https://github.com/CocoaPods/CocoaPods/issues/new

Be sure to first read the contributing guide for details on how to properly submit a ticket:
https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md

看到第一句是不是很有喜感趣惠,解決方案:
You need reinstall cocoapods: so

sudo gem uninstall cocoapods
sudo gem install cocoapods
pod setup

坑二:

Invalid `Podfile` file: [!] Unsupported options `{:exclusive=>true}` 
for target 'CocoaPodsDemo'

這種一般是pod install別人的工程狸棍,解決辦法是將:

target 'mySuperApp_Tests', :exclusive => true do 
pod 'mySuperApp', :path => '../'end

改成:

target 'mySuperApp_Tests' do pod 'mySuperApp', :path => '../' end

坑三:

[!] Unable to add a source with url 
`https://github.com/CocoaPods/Specs.git` named `master`.

解決辦法:

cd ~/.cocoapods/repos 
git clone https://github.com/CocoaPods/Specs.git master

還有一種報(bào)錯(cuò)是:

[!] Unable to add a source with url `https://github.com/CocoaPods/Specs.git` named `master-1`.
You can try adding it manually in `~/.cocoapods/repos` or via `pod repo add`.

解決辦法:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

可以通過(guò):

cd ~/.cocoapods
du -sh *

命令來(lái)查看文件大小

坑四:無(wú)論是執(zhí)行pod install還是pod update都卡在了Analyzing dependencies不動(dòng)原因在于當(dāng)執(zhí)行以上兩個(gè)命令的時(shí)候會(huì)升級(jí)CocoaPods的spec倉(cāng)庫(kù),加一個(gè)參數(shù)可以省略這一步味悄,然后速度就會(huì)提升不少草戈。加參數(shù)的命令如下:

pod install --verbose --no-repo-update
pod update --verbose --no-repo-update

坑五:提示找不到頭文件
1,找到TARGETS -> Build Settings -> SearchPaths -> User Header Search Paths 在后面的空白處雙擊
2傍菇, 點(diǎn)擊 ‘+’號(hào)猾瘸,添加一個(gè)新的鍵為${SRCROOT},值設(shè)置為recursive

坑六:pod install和pod update這倆命令字面意思理解就行丢习,一個(gè)安裝牵触,一個(gè)更新然后我們要說(shuō)說(shuō)Podfile.lock文件和Pods文件夾:
Podfile.lock :這個(gè)文件是用來(lái)保存已經(jīng)安裝的Pods依賴庫(kù)的版本。
Pods文件夾:這里邊全是引用的三方類庫(kù)咐低。如果Podfile.lock文件丟失揽思,你再使用pod install命令,并且Podfile中含有沒(méi)有指定版本的類庫(kù)见擦,那你的類庫(kù)就會(huì)下載最新的版本钉汗,有些比較活躍的三方項(xiàng)目更新很頻繁羹令,它們一旦更新方法名或者實(shí)現(xiàn)方式,你調(diào)用的代碼就報(bào)錯(cuò)了损痰,這是災(zāi)難性的福侈。
特別需要注意:使用pod update會(huì)更新的你Podfile.lock文件到最新版本,它們一旦更新方法名或者實(shí)現(xiàn)方式卢未,你調(diào)用的代碼就報(bào)錯(cuò)了肪凛,所以請(qǐng)不要手殘。
所以千萬(wàn)記住辽社,無(wú)論是自己的項(xiàng)目伟墙,還是跑別人的源碼,一定要用pod install滴铅,至于pod update戳葵,看你自己是不是要三方升級(jí)類庫(kù)(我還是建議最好在Podfile中指定版本,想要升級(jí)汉匙,只需更改Podfile中的版本號(hào)拱烁,再pod install)。

坑七:
sudo gem sources -a https://ruby.taobao.org/
Error fetching https://ruby.taobao.org/:
server did not return a valid file (http://ruby.taobao.org/specs.4.8.gz)
這真的是無(wú)妄之災(zāi)啊噩翠,網(wǎng)上找了半天解決辦法邻梆,試過(guò)https改http,也試過(guò):

1. rvm pkg install openssl
2. rvm reinstall all --force

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

最后問(wèn)群友绎秒,群友說(shuō)試試看,能不能打開(kāi)這個(gè)網(wǎng)站尼摹,結(jié)果是公司網(wǎng)絡(luò)權(quán)限問(wèn)題见芹,對(duì)于某寶是不能正常訪問(wèn)的,/氣哭/氣哭蠢涝。

坑八:
在運(yùn)行 “sudo gem install cocoapods” 的時(shí)候出現(xiàn)問(wèn)題:ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match(或者是- /usr/bin/xcodeproj之類的)

則可以改為:
sudo gem install -n /usr/local/bin cocoapods

坑九:
在更新Mac OS以后玄呛,提示:

pod 

-bash: /usr/local/bin/pod: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby: bad interpreter: No such file or directory

1、更新gem:
sudo gem update --system

2和二、刪除gem源:
gem sources --remove [https://ruby.taobao.org/](https://ruby.taobao.org/)

3徘铝、修改gem源:
gem sources -a [https://gems.ruby-china.org](https://gems.ruby-china.org/)

4、查看gem源是否是最新的:
gem sources -l

5惯吕、升級(jí)cocoapods:
sudo gem install -n /usr/local/bin cocoapods --pre

6惕它、查看升級(jí)后的cocoapods版本:
pod --version

(2,3可根據(jù)需求來(lái)操作)

(后期遇到坑废登,還會(huì)記錄與更新)


說(shuō)完坑淹魄,我們也要說(shuō)說(shuō)好用的工具,CocoaPods插件for Xcode.詳情參見(jiàn):iOS開(kāi)發(fā)之 Xcode的 Cocoapods插件使用方法堡距,對(duì)于不習(xí)慣不喜歡用命令行工具的人來(lái)說(shuō)甲锡,無(wú)疑是一個(gè)福音兆蕉。當(dāng)然,最近蘋(píng)果發(fā)布了Xcode 8 以后缤沦,貌似插件都被禁用了虎韵,這不得不說(shuō)是一個(gè)令人不愉快的事,不過(guò)這也不是無(wú)解的缸废,笨辦法就是回退到Xcode7包蓝,還有就是參照大神的杰作,讓Xcode8也能繼續(xù)運(yùn)行插件:https://github.com/inket/update_xcode_pluginshttps://github.com/fpg1503/MakeXcodeGr8Again


總結(jié)一下使用心得:
第一步呆奕,創(chuàng)建項(xiàng)目养晋;
第二步,創(chuàng)建Podfile文件梁钾;
第三步绳泉,填寫(xiě)第三方庫(kù)信息到podfile文件并保存;
第四步,安裝第三方庫(kù)姆泻,退出零酪,用xcworkspace文件打開(kāi),這步非常關(guān)鍵拇勃,而且只能用這個(gè)打開(kāi)四苇,不是以前的xcodeproj文件了,不然會(huì)提示第三方庫(kù)找不到;
第五步方咆,導(dǎo)入頭文件月腋,開(kāi)始使用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末瓣赂,一起剝皮案震驚了整個(gè)濱河市榆骚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌煌集,老刑警劉巖妓肢,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異苫纤,居然都是意外死亡碉钠,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)卷拘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喊废,“玉大人,你說(shuō)我怎么就攤上這事栗弟〔儋鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵横腿,是天一觀的道長(zhǎng)颓屑。 經(jīng)常有香客問(wèn)我斤寂,道長(zhǎng),這世上最難降的妖魔是什么揪惦? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任遍搞,我火速辦了婚禮,結(jié)果婚禮上器腋,老公的妹妹穿的比我還像新娘溪猿。我一直安慰自己,他們只是感情好纫塌,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布诊县。 她就那樣靜靜地躺著,像睡著了一般措左。 火紅的嫁衣襯著肌膚如雪依痊。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天怎披,我揣著相機(jī)與錄音胸嘁,去河邊找鬼。 笑死凉逛,一個(gè)胖子當(dāng)著我的面吹牛性宏,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播状飞,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼毫胜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了诬辈?” 一聲冷哼從身側(cè)響起指蚁,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎自晰,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體稍坯,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡酬荞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了瞧哟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片混巧。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖勤揩,靈堂內(nèi)的尸體忽然破棺而出咧党,到底是詐尸還是另有隱情,我是刑警寧澤陨亡,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布傍衡,位于F島的核電站深员,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蛙埂。R本人自食惡果不足惜倦畅,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绣的。 院中可真熱鬧叠赐,春花似錦、人聲如沸屡江。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)惩嘉。三九已至罢洲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間宏怔,已是汗流浹背奏路。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留臊诊,地道東北人鸽粉。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抓艳,于是被迫代替她去往敵國(guó)和親触机。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

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