cocoapods的安装与使用

前序


之前做过一个项目,我没有使用cocoapods来安装第三方库,直接将第三方库拖入项目中,搭建桥来直接使用。这种方法简单、直接、快捷,但是不利于后期项目的维护,所以我按照网上的方法从安装rvm、升级ruby、安装升级cocoapods到使用cocoapods安装第三方库和第三方库在项目中的使用。在这中间我遇到了无数无数的坑,哎啊,简直是坑爹啊!!!已经哭晕在厕所了!为了给其他的新手朋友提供一些帮助,今天就写下来这篇博客,也是我的处女作哦!好了,我们下面进入正题吧,Let's go

各种常见问题解决方案


在此我会列出下面的操作中有可能出现的一些坑,方便读者解决问题。

1.  当我们在完成第四步(更新ruby后),我们有可能会惊讶的发现,我们不能执行安装cocoapods的指令了。总是提示我们 “#Unable to require openssl,install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources ”。这也是我遇到的一个坑,现在跟你分享下解决方法:

a.  下载ruby最新源码  点此下载 并解压  ruby 2.2可以下载Ruby2.2.5的  ruby 2.3的可以下载Ruby 2.3.1的                       

b.  用命令安装openssl

$ brew install openssl

如果终端输出

openssl-1.0.2h_1 already installed

那么表示已经安装成功了。如果不是那么就继续安装吧。

c.  cd到你下载的Rudy 的位置。 你可能会说我怎么知道我下载到哪里了啊,那么你就把下载的放到你的桌面上。那么你的路径就应该是 /Users/你的用户名(注意是英文的)/Desktop/Ruby-2.2.5。 我的如下:

$ cd  /Users/KingTortoise/Desktop/Ruby-2.2.5

d.  配置源码

$ ./configure  --with-openssl-dir=/usr/local/ssl

e.  编译ruby源码

$ make

f.最后安装ruby

$ sudo make install

到这里为止我们就完成了。现在我们只要回到最初的位置就可以继续安装cocoapods了。

$ cd /Users/你的用户名/

这样就可以回到最初的位置了

好戏来了


首先我们来知道Homebrew(os x 不可或缺的套件管理器)、rvm、ruby这几个东西,这些在我们后面的安装中都有用到。

1.查看自己的ruby版本:

$ ruby -v

这里新手朋友要注意,你要输入的是 ruby -v ,前面的 $ 这个不需要你输入!!!!!!

终端输出版本号:(我的电脑是2.0.0的版本,但是不知道朋友你输出的是多少,但是我可以告诉你的是如果现在你的版本低于2.2.2,那么你就要进行升级,因为后面安装cocoapods时,它要求你的ruby不能低于2.2.2)

ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]

如果你的版本号低于2.2.2的话,那么你要升级ruby。可以使用rvm对ruby进行升级。

2.安装rvm:

$ curl -L get.rvm.io | bash -s stable

终端输出一些信息,这个过程要根据你的网速来决定,但是时间不会太长。当终端输出完成后,你可以查看rvm的版本号来判断是否安装成功。

$ source ~/.bashrc $ source ~/.bash_profile$ rvm -v

$ source ~/.bash_profile

$ rvm -v

终端输出版本号就意味着你成功了:

rvm 1.27.0 (latest) by Wayne E. Sequin <waynessguin@gmail.com>, Michal Papis<mpapis@gmail.com>[https://rvm.io/]

主要这里是(laster)最新版,我之前有一次出现(master),虽然我不知道这后面的操作有没有影响,但是我想你还是把rvm升级到最新版比较的放心~~

3.升级rvm(如果你第二步安装的rvm是laster版,那么你可以跳过这一步!!

按照下面这三个步骤就可以更新rvm

$ rvm get head

$ rvm reload

$ rvm get stable

每个步骤之间都要等一小小小会,你可不要一次性输入完啊!

4.利用rvm来升级ruby

$ rvm list known

终端打印相应的信息,通过信息我们可以看到rvm支持的ruby版本号,例如:

[ruby]2.2[4]  代表ruby2.2有5个版本号  2.2.0   2.2.1    2.2.2    2.2.3    2.2.4

因为我们后面要求ruby版本最低要是2.2.2,那么我们要升级ruby在2.2.2以上。我自己在这里升级ruby为2.2.4。 因为个人情况不同,你可以安装其他的版本,但是不能低于2.2.2。

下面这个代码就是升级ruby

$ rvm install 2.2.4

有的时候这个代码没有用,系统提示你要使用这个

$ rvm reinstall ruby-2.2.4

那么你就使用这个指令。我估计我是安装的太多次了,所以出现了这个提示!!!

这个安装过程稍微有点长,耐心等会就好了。中间会出现这样的情况:

type new path if you wish custom Homebrew installation (the path needs to be writable for user):

出现这个那是因为你没有安装homebrew,系统正在帮你自动安装。我最初还以为这里要输入什么,但是不是的,你这里不需要输入。但是我在这等了好久,后来在一篇博客中看到这里好像有两个回车,具体什么时候按我也不知道,反正当初我就是按回车按好的。最好的方法就是当你等的不耐烦的时候就按回车玩玩吧,嘻嘻!!!

如果你这里没有出现这个,那么你要看一下你有没有安装homebrew,你可以通过查看homebrew的版本号来判断

$ brew -v

如果终端输出版本号,那么就ok啦!!!  如果没有,那么你要自己手动安装homebrew,然后还要重新升级ruby。如果你是第一次的话,系统会自动帮你安装homebrew的,但是我们不怕一万,就怕万一嘛。homebrew的安装在第五步讲,现在先把第四步完成。

终端输出完成后,你可以查看ruby的版本号,查看ruby的指令跟第一步是一样的。如果是你更新后的版本,那么就代表成功了。如果ruby还是以前的版本的话,那么就代表失败了。失败了怎么办? 那你重新再更新下,我估计有可能是homebrew没有安装上的原因,你先手动安装homebrew后再重新更新ruby。

看这里!看这里!!看这里!!!

现在你是不是更新成功了啊! 是不是很开心,😝! 慢着,还有一步你一定要做,防止你后面出错了你要重头再来,你要把你ruby的默认版本号修改为你当前的版本号。

$ rvm use 2.2.4 --default


5.手动Homebrew

你要确定你是否安装homebrew,可以通过查看homebrew的版本号来判断。

$ brew -v

如果终端输出版本号,那么就ok啦!!!  如果没有你要安装homebrew,那么你要自己手动安装homebrew。安装指令如下:

$ ruby -e "$(curl - fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

注意这里 l 不是数字1, 是小写的L。等一会Homebrew就安装成功了。

6.安装cocoa pods

为了防止因为gem太老而造成问题,要更新gem:

$ sudo gem update --system

安装cocoa pods

$ sudo gem install cocoapods

如果这条指令没有响应的话,那么你要使用淘宝的Ruby镜像来访问cocoapods,依次执行如下指令将ruby源替换成国内的淘宝的源:

$ gem sources --remove https://rubygems.org/

$ gem sources -a https://ruby.taobao.org/

现在要验证你是否成功替换了ruby镜像

$ gem sources -l

如果出现https://ruby.taobao.org/ 那么表示成功了;现在再安装cocoa pods。

$ sudo gem install cocoapods

到目前为止cocoapods已经安装完成了。


7.使用cocoa pods来安装第三方库

这里我以常用的第三方库为例(AFNetworking和MJRefresh)

首先我们要cd到你的项目目录,你如果不知道你的项目路径,那么你就打开你的工程

看见没有? Full Path 这里就有的, 你只需要/Users/KingTortoise/Desktop/zhonggang/就够了,后面的工程路径不需要的。

$ cd /Users/KingTortoise/Desktop/zhonggang/

然后创建Podfile文件

$ vim Podfile

此时会进入到Podfile 文件的编写界面中。按下 i 键就可以进行编写了 。 编写的内容一下要注意,否则的话你有可能入坑。现在我写一个例子

platform :ios,'10.0'

use_frameworks!

target 'zhonggang' do

pod 'AFNetworking','~>3.0'

pod 'MJRefresh','~>3.0'

end

上面的 ‘10.0’代表着你该项目目前支持的最高版本。 use_frameworks! 这句话你一定要加,不然后面会出现问题的。   ‘zhonggang’是我的项目名称,你要填写你自己的项目名称。  ‘~>3.0’代表我们要导入的第三方库的版本不低于3.0。 我就是这样写的,没有出现问题~~

当你编写完成后,按下 ESC键退出编辑,然后按  冒号(:)wq退出。  注意是 ( :wq ) 

最后执行命令,下载第三方库

$ pod install

这个下载过程比较的漫长,而且没有给你任何的提示,网上有一个方法,就是查看下载内容的大小。      

 你要打开另一个终端界面,cd到它的下载目录,查看文件大小

$ cd ~/.cocoapods

$ du -sh*

每隔几分钟查看一次。我这次下载了两个第三方库,一共大概390M。

当你下载完成后,你会发现你的项目包中多处了四个文件


当你看到这些的时候,你已经完成的差不多了。在你以后的开发过程中,你要使用上图的xcworkspace来进行编程,而不是使用以前的xcodeproj来编程。

打开xcworkspace后会发现不同的。


看见没有,我们的第三方库自动的加进来了。

8.在工程中使用第三方库

在这里我以swift语言为例子,如果我们想使用第三方库的话,我们只需要在当前类上 import 第三方库就行了,后面就可以使用了。


很多朋友到这里就发现问题了,咦,我这个怎么不提示啊,还报错,怎么回事啊?好吧,我就是遇到这个问题的都比。

解决方法:点击的工程Target->Build Settings菜单;   找到 “User Header Search Paths ”设置项;   新增加一个值   “$(PODS_ROOT)”,注意没有双引号啊!! 并且后边选择 “recursive”。这样就ok了。关于这一方面的解决方法,网上有很多,我这就不详细写了。   最气人的是我这样设置了,但是并没有什么卵用,还是没有提示和报错。啊啊啊,气死我了,搞了整整一天,这个问题把我困住。好吧,我就不发牢骚了,我说说我怎么解决的吧。我先睡了一觉,然后第二天早上起来又试了一次啊,我X, 还是没好,哈哈。再然后我就运行下程序,再试,好了(一脸懵逼)。

总结一下这个解决办法就是:

点击的工程Target->Build Settings菜单;  找到 “User Header Search Paths ”设置项;  新增加一个值  “$(PODS_ROOT)”,注意没有双引号啊!! 并且后边选择 “recursive”。如果这样还是没有用的话,那你就运行下程序再试试看。


结束语


到这里我也写的差不多了,我就简单总结下我的使用过程吧

1.查看ruby版本

2.安装rvm

3.利用rvm升级ruby

4.安装cocoapods

5.利用cocoapods下载第三方库

6.在工程中使用第三方库

大体上的步骤就这么的多,但是还有很多的细节没有写出。我也把我遇到的一些问题和解决方法写了出来,希望对你们有一定的帮助。当然我也是一个新手,这也是我第一次写博客,内容上有些乏味,甚至还存在着一些问题,希望广大读者谅解,指出我的错误和不足之处。最后,十分感谢你的耐心阅读☺️。

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

推荐阅读更多精彩内容