CocoaPods安装 详细

最近安装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

install出错

安装时会输出很多文件以及进度条

install成功

安装完后你可以输入下面的命令查看是否成功,当前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

前往文件也可以按快捷键shift+command+G
文件结构

对比一下可以发现我们下载的文件和安装后的文件只是改了一下文件名,把最外面的文件改为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是平台
  • ios, '9.3'是指定所支持系统和最低版本
  • Test填写你的target名称(target名见下图),pod 后面的就是你需要的框架,'~>里面就是版本',官网的案例是写了版本号的。
这些就是Target名
官网案例

写完后按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


常用命令

更新本地仓库
pod repo update
从本地已有仓库更新当前项目中的第三方(不更新本地仓库)
pod update --verbose --no-repo-update

可能写的有点啰嗦了,最初我想的就是给超小白写的,我个人比较喜欢看图,所以基本上保持每几个动作截取一张图,看的更直观,但是有些图在最初安装的时候没想到要写文章所以就没有截取到,非常可惜,细心的朋友会发现我的终端样式不一样,是在后面帮朋友安装时重新截的图,如果对你有帮助,那就再好不过了!

推荐阅读更多精彩内容

  • CocoaPods 是什么? CocoaPods 是一个负责管理 iOS 项目中第三方开源库的工具。CocoaPo...
    朝洋阅读 24,336评论 3 50
  • 回头看看你给我的留言,回头想想我们在一起的点点滴滴,就像梦,梦醒了…… 你无情!
    阿勇的故事阅读 91评论 0 0
  • 使用SSH连接VirtualBox虚拟机 步骤: 配置虚拟机网络,添加端口转发规则 测试服务器端ssh是否安装 测...
    faner阅读 22,651评论 0 6