CocoaPods安裝 詳細

最近安裝CocoaPods遇到了很多的問題,導致安裝了3天才完成,對!你沒有看錯,安裝了整整3天(當中也有網(wǎng)絡的問題)。所以有了這篇文章。

  • 當前電腦版本: macOS High Sierra 10.13.1
  • xcode版本: Version 9.1 (9B55)

一、CocoaPods簡介

CocoaPods負責管理iOS項目中第三方框架。CocoaPods的項目源碼在Github上管理。項目從2011年8月12日開始,CocoaPods的出現(xiàn)使得我們可以節(jié)省設置和更新第三方開源庫的時間。

二、開始安裝

安裝需要用到Ruby,雖然Mac自帶了Ruby,不過版本有點老了,最好更新一下

sudo gem update --system

接下來輸入系統(tǒng)密碼就可以安裝了,輸入密碼時不會顯示的,輸完回車就行了(黑色塊是我個人加上去的,遮擋用戶名的)

輸入密碼

因為Ruby的軟件源rubygems.org被屏蔽了,所以要更換源

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

添加源成功

接下來查看下源路徑是否更換了

gem sources -l

和上圖一樣的源就成功了

**請確保只有 gems.ruby-china.com **
然后就可以更新Ruby了


接下來安裝Cocoapods了

sudo gem install cocoapods

不過有可能出錯(我就是出錯了),出錯的話執(zhí)行下面的命令

sudo gem install -n /usr/local/bin cocoapods

install出錯

安裝時會輸出很多文件以及進度條

install成功

安裝完后你可以輸入下面的命令查看是否成功,當前CocoaPods版本為1.0.0

pod --version

查看是否安裝成功

安裝完cocoapods后進行最蛋疼的一步,設置倉庫,就是把所有上傳到cocoapods的第三方框架下載每個版本和網(wǎng)絡地址以及一些其他描述信息到本地,因為服務器在國外所以比較蛋疼,網(wǎng)速好的直接無視我的話輸完下面命令后跳到下載中說明-。-

倉庫里裝的東西

pod setup

等待下載完
下載完成圖

下載完就大功告成了(沒有網(wǎng)絡問題就可以跳轉(zhuǎn)到三、開始使用了).


**網(wǎng)速不好,老是報錯的這里!

之前我也嘗試過使用CocoaPods的鏡像索引使用國內(nèi)的鏡像,但是沒有效果,oschina的應該是因為人流量訪問大,所以設置了驗證碼,而gitcafe馬上要停止服務了,所以沒辦法了(如果你知道還有其他鏡像請聯(lián)系我,貢獻出來讓我們這些網(wǎng)速差的小白能愉快的安裝)

一直報錯,503、argumenterror , syntax error on line 4, col 0: `min:0.29.0` 等等,都是你的網(wǎng)絡原因?qū)е碌?/p>

這就要手動下載配置,可以在上面的oschina和gitcafe鏈接中下載,也可以在github上下載(不過比較慢)

更新一個手動下載到本地的方法!!!
采用國內(nèi)的免費服務器同步后下載:鏈接

下載完成后你可以輸入

pod setup

然后control+c 中斷,目的是讓他幫你創(chuàng)建文件夾
當然你也可以手動創(chuàng)建文件夾,但是文件夾是隱藏的所以你需要在Finder頁面使用快捷鍵command + shift + .

隨后在Finder點擊 前往>前往文件夾 中前往文件,輸入下面指令

~/.cocoapods

前往文件也可以按快捷鍵shift+command+G
文件結構

對比一下可以發(fā)現(xiàn)我們下載的文件和安裝后的文件只是改了一下文件名,把最外面的文件改為master,然后扔到~/.cocoapods/repos文件夾下就完成設置了

對比圖

下載中說明

下載中如果不放心,可以新建一個終端窗口分別輸入下面兩條命令查看下載了多少,下載完成的文件大小如下(2016.5.25日下載的文件)

cd ~/.cocoapods
du -sh *

完成后的文件大小

三、開始使用

設置完成后就可以開始使用了,先創(chuàng)建一個Project,然后創(chuàng)建一個single View Application到桌面,終端中輸入cd+空格,把剛剛創(chuàng)建到桌面的文件夾拖到終端中,回車

接下來創(chuàng)建Podfile文件,并編輯

vim Podfile

進入Podfile后輸入i編輯狀態(tài)(可以查看左下角有個INSERT),進入輸入下面命令

platform :ios, '9.3'
use_frameworks!

target 'Test' do
  pod 'SDWebImage', '~>3.7.6'
  pod 'Masonry', '~>1.0.0'
end

<a name="Podfile" id="Podfile">Podfile格式解析</a>

  • platform是平臺
  • ios, '9.3'是指定所支持系統(tǒng)和最低版本
  • Test填寫你的target名稱(target名見下圖),pod 后面的就是你需要的框架,'~>里面就是版本',官網(wǎng)的案例是寫了版本號的。
這些就是Target名
官網(wǎng)案例

寫完后按Esc 然后:wq 意思是保存并退出

編寫并保存退出

接著輸入,就會把Podfile文件里寫的文件下載到當前文件夾,并且創(chuàng)建.xcworkspace

pod install

安裝完成時的文件

接下來就可以打開Test(target名).xcworkspace文件導入頭文件編寫你的程序了。

四、編寫小問題

我在編寫時還出現(xiàn)了一點小問題,當你導入頭文件時,有時不會提示,不會提示就表示可能會打錯,你可以control+B編譯一下再嘗試,如果還是不行就按照下面的圖進行一下配置

$(PODS_ROOT)
選擇recursive

導入頭文件提示

之后我去看了下官網(wǎng),官網(wǎng)的導入方式是尖括號<里面寫導入第三方的文件夾名+頭文件>

官網(wǎng)寫法

這里,又一個問題來了,當你使用Masonry的時候需要進行宏定義,因為什么時候用mas_,什么時候包裝數(shù)據(jù)類型,這些實在懶得記...而當你用官網(wǎng)的方式導入,那種方式不能支持宏

編譯時
運行時報錯

這時候就需要改成import "Masonry.h" ,很奇怪的是我現(xiàn)在導入有提示,而之前導入一直沒出提示。

正確的導入文件方法

五、常見的問題

### Error

ArgumentError - invalid byte sequence in US-ASCII
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer/pod_source_installer.rb:257:in `glob'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer/pod_source_installer.rb:257:in `glob'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer/pod_source_installer.rb:257:in `clean_paths'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer/pod_source_installer.rb:157:in `clean_installation'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer/pod_source_installer.rb:82:in `clean!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer.rb:278:in `block in clean_pod_sources'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer.rb:277:in `each'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer.rb:277:in `clean_pod_sources'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer.rb:107:in `block in download_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/user_interface.rb:52:in `section'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer.rb:103:in `download_dependencies'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/installer.rb:89:in `install!'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/command/project.rb:38:in `run_install_with_update'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/command/project.rb:68:in `run'
/Library/Ruby/Gems/2.0.0/gems/claide-0.5.0/lib/claide/command.rb:277:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/lib/cocoapods/command.rb:51:in `run'
/Library/Ruby/Gems/2.0.0/gems/cocoapods-0.31.1/bin/pod:33:in `'
/usr/bin/pod:23:in `load'
/usr/bin/pod:23:in `'

更改編碼為UTF-8

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8

[!] Your Podfile has had smart quotes sanitised. 
To avoid issues in the future, you should not use TextEdit for editing it.
If you are not using TextEdit, you should turn off smart quotes in your editor of choice.

提示你使用mac自帶的"文本編輯"要取消智能引號
編輯-替換-智能引號 取消勾選

關閉智能引號

不過我建議最好是用vim,如果嫌麻煩還可以用xcode打開

打開方式
始終以Xcode打開

剩下有些編寫時出錯的問題可能是多了個空格或者什么字符打錯了/使用了中文字符等,看編譯器報的錯一般就能解決

如果不能解決就試試從執(zhí)行安裝命令,依次執(zhí)行之前的命令

sudo gem install cocoapods
上面報錯就執(zhí)行sudo gem install -n /usr/local/bin cocoapods
pod setup


常用命令

更新本地倉庫
pod repo update
從本地已有倉庫更新當前項目中的第三方(不更新本地倉庫)
pod update --verbose --no-repo-update

可能寫的有點啰嗦了,最初我想的就是給超小白寫的,我個人比較喜歡看圖,所以基本上保持每幾個動作截取一張圖,看的更直觀,但是有些圖在最初安裝的時候沒想到要寫文章所以就沒有截取到,非常可惜,細心的朋友會發(fā)現(xiàn)我的終端樣式不一樣,是在后面幫朋友安裝時重新截的圖,如果對你有幫助,那就再好不過了!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

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

  • CocoaPods 是什么? CocoaPods 是一個負責管理 iOS 項目中第三方開源庫的工具。CocoaPo...
    朝洋閱讀 25,723評論 3 51
  • 回頭看看你給我的留言,回頭想想我們在一起的點點滴滴,就像夢,夢醒了…… 你無情!
    阿勇的故事閱讀 164評論 0 0
  • 使用SSH連接VirtualBox虛擬機 步驟: 配置虛擬機網(wǎng)絡,添加端口轉(zhuǎn)發(fā)規(guī)則 測試服務器端ssh是否安裝 測...
    faner閱讀 30,912評論 0 7