- 2018.8.28 https://gems.ruby-china.org域名更新為https://gems.ruby-china.com
- 2017.12.1 更新ruby源
最近安裝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
安裝時會輸出很多文件以及進度條
安裝完后你可以輸入下面的命令查看是否成功,當前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
對比一下可以發(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)的案例是寫了版本號的。
寫完后按Esc 然后:wq 意思是保存并退出
接著輸入,就會把Podfile文件里寫的文件下載到當前文件夾,并且創(chuàng)建.xcworkspace
pod install
接下來就可以打開Test(target名).xcworkspace文件導入頭文件編寫你的程序了。
四、編寫小問題
我在編寫時還出現(xiàn)了一點小問題,當你導入頭文件時,有時不會提示,不會提示就表示可能會打錯,你可以control+B編譯一下再嘗試,如果還是不行就按照下面的圖進行一下配置
$(PODS_ROOT)
選擇recursive
之后我去看了下官網(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打開
剩下有些編寫時出錯的問題可能是多了個空格或者什么字符打錯了/使用了中文字符等,看編譯器報的錯一般就能解決
如果不能解決就試試從執(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)我的終端樣式不一樣,是在后面幫朋友安裝時重新截的圖,如果對你有幫助,那就再好不過了!