CocoaPods安装、超详细
- 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的出现使得我们可以节省设置和更新第三方开源库的时间。(练习时为了速度一般我都是直接导入工程中,个人比较讨厌写纯代码在Podfile文件中)
二、开始安装
安装需要用到Ruby,虽然Mac自带了Ruby,不过版本有点老了,最好更新一下
sudo gem update --system
接下来输入系统密码就可以安装了,输入密码时不会显示的,输完回车就行了(黑色块是我个人加上去的,遮挡用户名的)
输入密码因为Ruby的软件源rubygems.org被屏蔽了,所以要更换源
添加源成功gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
接下来查看下源路径是否更换了
和上图一样的源就成功了gem sources -l
**请确保只有 gems.ruby-china.org! **
然后就可以更新Ruby了
sudo gem update --system
接下来安装Cocoapods了
sudo gem install cocoapods
不过有可能出错(我就是出错了),出错的话执行下面的命令
install出错sudo gem install -n /usr/local/bin cocoapods
安装时会输出很多文件以及进度条
install成功安装完后你可以输入下面的命令查看是否成功,当前CocoaPods版本为1.0.0
查看是否安装成功pod --version
安装完cocoapods后进行最蛋疼的一步,设置仓库,就是把所有上传到cocoapods的第三方框架下载每个版本和网络地址以及一些其他描述信息到本地,因为服务器在国外所以比较蛋疼,网速好的直接无视我的话输完下面命令后跳到下载中说明-。-
仓库里装的东西等待下载完 下载完成图pod setup
下载完就大功告成了(没有网络问题就可以跳转到三、开始使用了).
网速不好,老是报错的这里!(切换到https://gems.ruby-china.org/源后基本不用担心网速了)
之前我也尝试过使用CocoaPods的镜像索引使用国内的镜像,但是没有效果,oschina的应该是因为人流量访问大,所以设置了验证码,而gitcafe马上要停止服务了,所以没办法了(如果你知道还有其他镜像请联系我,贡献出来让我们这些网速差的小白能愉快的安装)
一直报错,503、argumenterror , syntax error on line 4, col 0: `min:0.29.0` 等等,都是你的网速不好导致的
这就要手动下载配置,可以在上面的oschina和gitcafe链接中下载,也可以在github上下载(不过比较慢),还可以在我的网盘下载
- 百度网盘 2017.01.08更新
下载完成后你可以输入
pod setup
然后control+c 中断,目的是让他帮你创建文件夹
当然你也可以手动创建文件夹,但是文件夹是隐藏的所以你需要在终端输入下面命令然后command+option+esc 重新启动一下Finder,就可以看到隐藏文件,把下面的true改为false就可以不显示隐藏文件
defaults write com.apple.finder AppleShowAllFiles -bool true
随后在Finder点击 前往>前往文件夹 中前往文件,输入下面指令
前往文件也可以按快捷键shift+command+G 文件结构~/.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
<a name="Podfile" id="Podfile">Podfile格式解析</a>
- platform是平台
- 9.3是当前的版本(下图可以查看你的iOS版本)
- Test填写你的target名称(target名见第二张图),pod 后面的就是你需要的框架,'~>里面就是版本',官网的案例是写了版本号的。(9.11日测试不写版本号默认是最新版本,不知道之前出了什么错误- -)
写完后按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打开
打开方式 始终以Xcode打开剩下有些编写时出错的问题可能是多了个空格或者什么字符打错了/使用了中文字符等,看编译器报的错一般就能解决
如果不能解决就试试从执行安装命令,依次执行之前的命令
sudo gem install cocoapods
上面报错就执行sudo gem install -n /usr/local/bin cocoapods
pod setup
第一次写教程文章,因为个人原因不喜欢加。句号,不知道你们是否看的过去,如果有更好的排版方式意见或者遇到什么问题欢迎在下方评论!
可能写的有点啰嗦了,最初我想的就是给超小白写的,我个人比较喜欢看图,所以基本上保持每几个动作截取一张图,看的更直观,但是有些图在最初安装的时候没想到要写文章所以就没有截取到,非常可惜,细心的朋友会发现我的终端样式不一样,是在后面帮同学安装时重新截的图,如果对你有帮助,那就再好不过了!