- 2018.8.28 https://gems.ruby-china.org域名更新为https://gems.ruby-china.com
- 2017.12.1 更新ruby源
最近安装CocoaPods遇到了很多的问题,导致安装了3天才完成,对!你没有看错,安装了整整3天(当中也有网络的问题)。所以有了这篇文章。
- 当前电脑版本: macOS High Sierra 10.13.1
- xcode版本: Version 9.1 (9B55)
一、CocoaPods简介
CocoaPods负责管理iOS项目中第三方框架。CocoaPods的项目源码在Github上管理。项目从2011年8月12日开始,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。
二、开始安装
安装需要用到Ruby,虽然Mac自带了Ruby,不过版本有点老了,最好更新一下
sudo gem update --system
接下来输入系统密码就可以安装了,输入密码时不会显示的,输完回车就行了(黑色块是我个人加上去的,遮挡用户名的)
因为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
不过有可能出错(我就是出错了),出错的话执行下面的命令
sudo gem install -n /usr/local/bin cocoapods
安装时会输出很多文件以及进度条
安装完后你可以输入下面的命令查看是否成功,当前CocoaPods版本为1.0.0
pod --version
安装完cocoapods后进行最蛋疼的一步,设置仓库,就是把所有上传到cocoapods的第三方框架下载每个版本和网络地址以及一些其他描述信息到本地,因为服务器在国外所以比较蛋疼,网速好的直接无视我的话输完下面命令后跳到下载中说明-。-
pod setup
下载完就大功告成了(没有网络问题就可以跳转到三、开始使用了).
**网速不好,老是报错的这里!
之前我也尝试过使用CocoaPods的镜像索引使用国内的镜像,但是没有效果,oschina的应该是因为人流量访问大,所以设置了验证码,而gitcafe马上要停止服务了,所以没办法了(如果你知道还有其他镜像请联系我,贡献出来让我们这些网速差的小白能愉快的安装)
一直报错,503、argumenterror , syntax error on line 4, col 0: `min:0.29.0` 等等,都是你的网络原因导致的
这就要手动下载配置,可以在上面的oschina和gitcafe链接中下载,也可以在github上下载(不过比较慢)
更新一个手动下载到本地的方法!!!
采用国内的免费服务器同步后下载:链接
下载完成后你可以输入
pod setup
然后control+c 中断,目的是让他帮你创建文件夹
当然你也可以手动创建文件夹,但是文件夹是隐藏的所以你需要在Finder页面使用快捷键command + shift + .
随后在Finder点击 前往>前往文件夹 中前往文件,输入下面指令
~/.cocoapods
对比一下可以发现我们下载的文件和安装后的文件只是改了一下文件名,把最外面的文件改为master,然后扔到~/.cocoapods/repos文件夹下就完成设置了
下载中说明
下载中如果不放心,可以新建一个终端窗口分别输入下面两条命令查看下载了多少,下载完成的文件大小如下(2016.5.25日下载的文件)
cd ~/.cocoapods
du -sh *
三、开始使用
设置完成后就可以开始使用了,先创建一个Project,然后创建一个single View Application到桌面,终端中输入cd+空格,把刚刚创建到桌面的文件夹拖到终端中,回车
接下来创建Podfile文件,并编辑
vim Podfile
进入Podfile后输入i编辑状态(可以查看左下角有个INSERT),进入输入下面命令
platform :ios, '9.3'
use_frameworks!
target 'Test' do
pod 'SDWebImage', '~>3.7.6'
pod 'Masonry', '~>1.0.0'
end
Podfile格式解析
- platform是平台
- ios, '9.3'是指定所支持系统和最低版本
- Test填写你的target名称(target名见下图),pod 后面的就是你需要的框架,'~>里面就是版本',官网的案例是写了版本号的。
写完后按Esc 然后:wq 意思是保存并退出
接着输入,就会把Podfile文件里写的文件下载到当前文件夹,并且创建.xcworkspace
pod install
接下来就可以打开Test(target名).xcworkspace文件导入头文件编写你的程序了。
四、编写小问题
我在编写时还出现了一点小问题,当你导入头文件时,有时不会提示,不会提示就表示可能会打错,你可以control+B编译一下再尝试,如果还是不行就按照下面的图进行一下配置
$(PODS_ROOT)
选择recursive
之后我去看了下官网,官网的导入方式是尖括号<里面写导入第三方的文件夹名+头文件>
这里,又一个问题来了,当你使用Masonry的时候需要进行宏定义,因为什么时候用mas_,什么时候包装数据类型,这些实在懒得记...而当你用官网的方式导入,那种方式不能支持宏
这时候就需要改成import "Masonry.h" ,很奇怪的是我现在导入有提示,而之前导入一直没出提示。
五、常见的问题
### 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打开
剩下有些编写时出错的问题可能是多了个空格或者什么字符打错了/使用了中文字符等,看编译器报的错一般就能解决
如果不能解决就试试从执行安装命令,依次执行之前的命令
sudo gem install cocoapods
上面报错就执行sudo gem install -n /usr/local/bin cocoapods
pod setup
常用命令
更新本地仓库
pod repo update
从本地已有仓库更新当前项目中的第三方(不更新本地仓库)
pod update --verbose --no-repo-update
可能写的有点啰嗦了,最初我想的就是给超小白写的,我个人比较喜欢看图,所以基本上保持每几个动作截取一张图,看的更直观,但是有些图在最初安装的时候没想到要写文章所以就没有截取到,非常可惜,细心的朋友会发现我的终端样式不一样,是在后面帮朋友安装时重新截的图,如果对你有帮助,那就再好不过了!