前序
之前做过一个项目,我没有使用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.在工程中使用第三方库
大体上的步骤就这么的多,但是还有很多的细节没有写出。我也把我遇到的一些问题和解决方法写了出来,希望对你们有一定的帮助。当然我也是一个新手,这也是我第一次写博客,内容上有些乏味,甚至还存在着一些问题,希望广大读者谅解,指出我的错误和不足之处。最后,十分感谢你的耐心阅读☺️。