cocoapods安装和使用

2018.8.28https://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 --addhttps://gems.ruby-china.com/--removehttps://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'dopod'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" ,很奇怪的是我现在导入有提示,而之前导入一直没出提示。

正确的导入文件方法

五、常见的问题

### ErrorArgumentError - invalid byte sequenceinUS-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`blockindownload_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 issuesinthe future, you shouldnotuse TextEditforediting it.If you arenotusing TextEdit, you should turn off smart quotesinyour 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

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

作者:BIMiracle

链接:https://www.jianshu.com/p/1bb0ad42cb2e

来源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容