- 2018.8.28 https://gems.ruby-china.org域名更新為https://gems.ruby-china.com
- 2017.12.1 更新ruby源
最近安裝CocoaPods遇到了很多的問題僵蛛,導(dǎo)致安裝了3天才完成旧找,對先慷!你沒有看錯台谍,安裝了整整3天(當(dāng)中也有網(wǎng)絡(luò)的問題)杉适。所以有了這篇文章亚隅。
- 當(dāng)前電腦版本: macOS High Sierra 10.13.1
- xcode版本: Version 9.1 (9B55)
一逾柿、CocoaPods簡介
CocoaPods負責(zé)管理iOS項目中第三方框架怕膛。CocoaPods的項目源碼在Github上管理熟嫩。項目從2011年8月12日開始,CocoaPods的出現(xiàn)使得我們可以節(jié)省設(shè)置和更新第三方開源庫的時間。
二褐捻、開始安裝
安裝需要用到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
安裝時會輸出很多文件以及進度條
安裝完后你可以輸入下面的命令查看是否成功,當(dāng)前CocoaPods版本為1.0.0
pod --version
安裝完cocoapods后進行最蛋疼的一步撒璧,設(shè)置倉庫透葛,就是把所有上傳到cocoapods的第三方框架下載每個版本和網(wǎng)絡(luò)地址以及一些其他描述信息到本地,因為服務(wù)器在國外所以比較蛋疼卿樱,網(wǎng)速好的直接無視我的話輸完下面命令后跳到下載中說明-僚害。-
pod setup
下載完就大功告成了(沒有網(wǎng)絡(luò)問題就可以跳轉(zhuǎn)到三、開始使用了).
**網(wǎng)速不好殿如,老是報錯的這里贡珊!
之前我也嘗試過使用CocoaPods的鏡像索引使用國內(nèi)的鏡像,但是沒有效果涉馁,oschina的應(yīng)該是因為人流量訪問大门岔,所以設(shè)置了驗證碼,而gitcafe馬上要停止服務(wù)了烤送,所以沒辦法了(如果你知道還有其他鏡像請聯(lián)系我寒随,貢獻出來讓我們這些網(wǎng)速差的小白能愉快的安裝)
一直報錯,503帮坚、argumenterror , syntax error on line 4, col 0: `min:0.29.0` 等等妻往,都是你的網(wǎng)絡(luò)原因?qū)е碌?/p>
這就要手動下載配置,可以在上面的oschina和gitcafe鏈接中下載试和,也可以在github上下載(不過比較慢)
更新一個手動下載到本地的方法!!!
采用國內(nèi)的免費服務(wù)器同步后下載:鏈接
下載完成后你可以輸入
pod setup
然后control+c 中斷讯泣,目的是讓他幫你創(chuàng)建文件夾
當(dāng)然你也可以手動創(chuàng)建文件夾,但是文件夾是隱藏的所以你需要在Finder頁面使用快捷鍵command + shift + .
隨后在Finder點擊 前往>前往文件夾 中前往文件阅悍,輸入下面指令
~/.cocoapods
對比一下可以發(fā)現(xiàn)我們下載的文件和安裝后的文件只是改了一下文件名好渠,把最外面的文件改為master,然后扔到~/.cocoapods/repos文件夾下就完成設(shè)置了
下載中說明
下載中如果不放心节视,可以新建一個終端窗口分別輸入下面兩條命令查看下載了多少拳锚,下載完成的文件大小如下(2016.5.25日下載的文件)
cd ~/.cocoapods
du -sh *
三、開始使用
設(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)的案例是寫了版本號的连躏。
寫完后按Esc 然后:wq 意思是保存并退出
接著輸入,就會把Podfile文件里寫的文件下載到當(dāng)前文件夾贞滨,并且創(chuàng)建.xcworkspace
pod install
接下來就可以打開Test(target名).xcworkspace文件導(dǎo)入頭文件編寫你的程序了。
四、編寫小問題
我在編寫時還出現(xiàn)了一點小問題晓铆,當(dāng)你導(dǎo)入頭文件時勺良,有時不會提示,不會提示就表示可能會打錯骄噪,你可以control+B編譯一下再嘗試尚困,如果還是不行就按照下面的圖進行一下配置
$(PODS_ROOT)
選擇recursive
之后我去看了下官網(wǎng),官網(wǎng)的導(dǎo)入方式是尖括號<里面寫導(dǎo)入第三方的文件夾名+頭文件>
這里链蕊,又一個問題來了事甜,當(dāng)你使用Masonry的時候需要進行宏定義,因為什么時候用mas_滔韵,什么時候包裝數(shù)據(jù)類型逻谦,這些實在懶得記...而當(dāng)你用官網(wǎng)的方式導(dǎo)入,那種方式不能支持宏
這時候就需要改成import "Masonry.h" ,很奇怪的是我現(xiàn)在導(dǎo)入有提示陪蜻,而之前導(dǎo)入一直沒出提示邦马。
五、常見的問題
### 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打開
剩下有些編寫時出錯的問題可能是多了個空格或者什么字符打錯了/使用了中文字符等滋将,看編譯器報的錯一般就能解決
如果不能解決就試試從執(zhí)行安裝命令,依次執(zhí)行之前的命令
sudo gem install cocoapods
上面報錯就執(zhí)行sudo gem install -n /usr/local/bin cocoapods
pod setup
常用命令
更新本地倉庫
pod repo update
從本地已有倉庫更新當(dāng)前項目中的第三方(不更新本地倉庫)
pod update --verbose --no-repo-update
可能寫的有點啰嗦了症昏,最初我想的就是給超小白寫的随闽,我個人比較喜歡看圖,所以基本上保持每幾個動作截取一張圖肝谭,看的更直觀掘宪,但是有些圖在最初安裝的時候沒想到要寫文章所以就沒有截取到,非撤治可惜添诉,細心的朋友會發(fā)現(xiàn)我的終端樣式不一樣,是在后面幫朋友安裝時重新截的圖医寿,如果對你有幫助栏赴,那就再好不過了!