CocoaPods安装和使用教程 -- (Mac本地安装Ruby环境)

来源:互联网 发布:淘宝货源 客户达 编辑:程序博客网 时间:2024/04/29 19:00
Code4App 原创文章。转载请注明出处:http://code4app.com/article/cocoapods-install-usage

参考keyboardOTA 的博客 http://blog.csdn.net/keyboardota/article/details/8935411

在此记录一些遇到的问题

在安装CocoaPods之前,首先要在本地安装好Ruby环境。如何在Mac中安装好Ruby环境???

1.通过命令行工具(Command Line Tools)安装brew

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

过程(不用看

==> This script will install:

/usr/local/bin/brew

/usr/local/Library/...

/usr/local/share/man/man1/brew.1


Press RETURN to continue or any other key to abort

==> /usr/bin/sudo /bin/mkdir /usr/local


WARNING: Improper use of the sudo command could lead to data loss

or the deletion of important system files. Please double-check your

typing when using sudo. Type "man sudo" for more information.


To proceed, enter your password, or type Ctrl-C to abort.


Password:

Sorry, try again.

Password:

==> /usr/bin/sudo /bin/chmod g+rwx /usr/local

==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local

==> /usr/bin/sudo /bin/mkdir /Library/Caches/Homebrew

==> /usr/bin/sudo /bin/chmod g+rwx /Library/Caches/Homebrew

==> Downloading and installing Homebrew...

remote: Counting objects: 214924, done.

remote: Compressing objects: 100% (56825/56825), done.

Receiving objects:  87% (187621/214924), 42.78 MiB | 97.00 KiB/s   

)

2.

(

==> Installation successful!

==> Next steps

Run `brew doctor` before you install anything

Run `brew help` to get started

)

安装了brew以后,可以通过以下命令检查brew的安装情况:

brew doctor
如果提示“Your system is ready to brew.”就表示可以使用了,如果出现其它提示请按照提示对系统进行修正。


这次出来这个,让我安装最新的 XQuartz (我不知道这是嘛玩意,安呗.下面好像说不安装最新的也行?)

Please note that these warnings are just used to help the Homebrew maintainers

with debugging if you file an issue. If everything you use Homebrew for is

working fine: please don't worry and just ignore them. Thanks!

Warning: Your XQuartz (2.7.4) is outdated

Please install XQuartz 2.7.7:

  https://xquartz.macosforge.org


3.安装设置rvm
通过以下命令安装设置rvm
curl -L get.rvm.io | bash


4. 设置rvm
通过以下命令启用rvm
source ~/.rvm/scripts/rvm

为了避免每次启动命令行界面都需要执行以上命令,可以将以下代码加入到你的批处理文件中

[[ -"$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

注意,如果你的home目录上有.bash_profile文件,你需要修改的是.bash_profile文件,因为~目录有bash_profile时.profile是不会运行的。


5. 安装rvm需要的包

通过以下命令安装rvm需要的软件包。

rvm requirements

如果以上命令执行后系统提示某些组件没有安装,你需要按提示去安装那些软件包。

{终端信息

Checking requirements for osx.

Installing requirements for osx.

Updating system.....

Installing required custom packages: homebrew/versions.

Installing required packages: autoconf, automake, libtool, pkg-config, gcc46, libyaml, readline, libksba, openssl....\

}


6. 再此确认brew的环境

通过再次运行以下命令确认brew的环境:

brew doctor

如果运行以上命令时出现下面的警告:
Warning: /usr/bin occurs before /usr/local/bin

你需要修改 ~/.profile(或者是 ~/.bash_profile),将以下命令加入到该文件中,放在文件开头后者是结尾都可以:

export PATH=/usr/local/bin:$PATH

8. 安装rvm额外的文件

通过以下命令安装额外的文件

rvm get head

这里我安不上{

Downloading https://get.rvm.io

Could not download rvm-installer, get some help at #rvm IRC channel at freenode servers.

}

9.再次检查环境 

再次运行rvm requirements检查是否安装了说有需要组件

rvm requirements

{安装成功了

Checking requirements for osx.

Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.

Requirements installation successful.

}



10. 安装Ruby 2.0 


#查看当前ruby版本
$ ruby -v
ruby 1.8.7
#列出已知的ruby版本
$ rvm list known
#安装ruby 1.9.3
$ rvm install 1.9.3


通过以下命令安装Ruby 2.0

rvm install 2.0.0  这里我输的是  rvm install ruby-2.0.0 --head --docs

{好高大上啊,

Checking requirements for osx.

Certificates in '/usr/local/etc/openssl/cert.pem' are already up to date.

Requirements installation successful.

Installing Ruby from source to: /Users/fosung_mac01/.rvm/rubies/ruby-2.0.0-p598, this may take a while depending on your cpu(s)...

ruby-2.0.0-p598 - #downloading ruby-2.0.0-p598, this may take a while depending on your connection...

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current

                                 Dload  Upload   Total   Spent    Left  Speed

100 10.2M  100 10.2M    0     0  2606k      0  0:00:04  0:00:04 --:--:-- 2607k

ruby-2.0.0-p598 - #extracting ruby-2.0.0-p598 to /Users/fosung_mac01/.rvm/src/ruby-2.0.0-p598....

ruby-2.0.0-p598 - #configuring.................................................

ruby-2.0.0-p598 - #post-configuration.

ruby-2.0.0-p598 - #compiling..................................................||


}

11. 设置Ruby 2.0为缺省版本的rvm

rvm default 2.0.0



12. 安装rails

通过以下命令安装Rails,记得加-V参数

sudo gem install rails -V

{

这里有错误搞晕了

用这个解决?http://ruby.taobao.org


$ sed -i .bak 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db


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

$ gem sources -a https://ruby.taobao.org/
https://ruby.taobao.org/ added to sources
$ gem sources -l
*** CURRENT SOURCES ***


https://ruby.taobao.org/

}

然后再进行 sudo gem install rails -V

{

哇!跑起来了✌️,很长就不记录了

Installing ri documentation for rails-4.1.8

26 gems installed

安装成功了

}

13. 最后检查

最后,通过以下命令可以检查安装是否成功

rails --version

安装成功的话会显示最新版的Rails,我的显示为:

Rails 3.2.13

{

Rails 4.1.8

成功了,不容易啊 
}

好!!安装完成。


下面来学习CocoaPods...  

出处:http://code4app.com/article/cocoapods-install-usage

CocoaPods是什么?

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。总之小编的意思就是,手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库,都支持CocoaPods。所以,作为iOS程序员的我们,掌握CocoaPods的使用是必不可少的基本技能了。

{

看起来又不明觉厉了,我现在才知道  ..丢人..

}

如何下载和安装CocoaPods?

在安装CocoaPods之前,首先要在本地安装好Ruby环境。至于如何在Mac中安装好Ruby环境,请google一下,本文不再涉及。

假如你在本地已经安装好Ruby环境,那么下载和安装CocoaPods将十分简单,只需要一行命令。在Terminator(也就是终端)中输入以下命令(注意,本文所有命令都是在终端中输入并运行的。什么,你不知道什么是终端?那请小编吃饭,小编告诉你):{嘿嘿}

sudo gem install cocoapods

但是,且慢。如果你在天朝,在终端中敲入这个命令之后,会发现半天没有任何反应。原因无他,因为那堵墙阻挡了cocoapods.org。(你会问,我靠,这都要墙!是的,小编也纳闷。){天朝网管好霸气}

但是,是的,又但是(不过是个可喜的“但是”)。我们可以用淘宝的Ruby镜像来访问cocoapods。按照下面的顺序在终端中敲入依次敲入命令:

$ gem sources --remove https://rubygems.org///等有反应之后再敲入以下命令$ gem sources -a http://ruby.taobao.org/

为了验证你的Ruby镜像是并且仅是taobao,可以用以下命令查看:

$ gem sources -l

只有在终端中出现下面文字才表明你上面的命令是成功的:

*** CURRENT SOURCES ***http://ruby.taobao.org/

上面所有的命令完成之时,在小编的终端上是这个的样子:

Figure 1

{上面安装Ruby环境的时候已经设置了,OK!}

这时候,你再次在终端中运行:

$ sudo gem install cocoapods

等上十几秒钟,CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。

敲入以上命令时,小编终端上是这个样子的(由于太长,仅截取前面一部分):

Figure 2

看到这里,你心里会不会说,我靠!太爽了,这么容易就可以下载并且安装好了!是的,小编也是这么想的。CocoPods就是这么简单,使用也十分简单。继续往下看吧。

{鲜花,掌声}

如何使用CocoaPods?

好了,安装好CocoPods之后,接下来就是使用它。所幸,使用CocoPods和安装它一样简单,也是通过一两行命令就可以搞定。

小编在这里用两种使用场景来具体说明如何使用CocoaPods。

场景1:利用CocoaPods,在项目中导入AFNetworking类库

AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking

为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下。在终端中输入:

$ pod search AFNetworking

过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息。比如:

-> AFNetworking (2.5.0)

   A delightful iOS and OS X networking framework.

   pod 'AFNetworking', '~> 2.5.0'

   - Homepage: https://github.com/AFNetworking/AFNetworking

   - Source:   https://github.com/AFNetworking/AFNetworking.git

   - Versions: 2.5.0, 2.4.1, 2.4.0, 2.3.1, 2.3.0, 2.2.4, 2.2.3, 2.2.2, 2.2.1,

   2.2.0, 2.1.0, 2.0.3, 2.0.2, 2.0.1, 2.0.0, 2.0.0-RC3, 2.0.0-RC2, 2.0.0-RC1,

   1.3.4, 1.3.3, 1.3.2, 1.3.1, 1.3.0, 1.2.1, 1.2.0, 1.1.0, 1.0.1, 1.0, 1.0RC3,

   1.0RC2, 1.0RC1, 0.10.1, 0.10.0, 0.9.2, 0.9.1, 0.9.0, 0.7.0, 0.5.1 [master

   repo]

   - Sub specs:

     - AFNetworking/Serialization (2.5.0)

     - AFNetworking/Security (2.5.0)

     - AFNetworking/Reachability (2.5.0)

     - AFNetworking/NSURLConnection (2.5.0)

     - AFNetworking/NSURLSession (2.5.0)

     - AFNetworking/UIKit (2.5.0)


这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。

首先,我们需要在我们的项目中加入CocoaPods的支持。你可以跟随小编的步骤,先利用Xcode创建一个名字CocoaPodsDemo的项目,用于以下的教程。创建好之后,在继续下一步之前,小编先截图,看看项目没有支持CocoaPods时的项目Xcode目录结构:


上图等一下要跟项目支持CocoaPods之后的项目Xcode目录结构做对比。

你看到这里也许会问,CocoaPods为什么能下载AFNetworking呢,而不是下载其他类库呢?这个问题的答案是,有个文件来控制CocoaPods该下载什么。这个文件就叫做“Podfile”(注意,一定得是这个文件名,而且没有后缀)。你创建一个Podfile文件,然后在里面添加你需要下载的类库,也就是告诉CocoaPods,“某某和某某和某某某,快到碗里来!”。每个项目只需要一个Podfile文件。

好吧,废话少说,我们先创建这个神奇的PodFile。在终端中进入(cd命令:cd+空格+目录)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:

{好吧,终端命令啥的我也不会~ 不许笑!!!!

在网上找了篇文章,摘抄在自己博客日记中}

$ vim Podfile

然后在Podfile文件中输入以下文字:

platform :ios, '7.0'pod 'AFNetworking', '~> 2.0'

注意,这段文字不是小编凭空生成的,可以在AFNetworking的github页面找到。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。

{这里我要去查一查了?这破网连github都登不上

另外,还有一种方法来编辑的:(详见附录2)

进图工程所在文件夹,

输入命令 :touch Podfile

open -e Podfile

这样打开了文本编辑器来编辑了,编辑好后保存

}

然后保存退出。vim环境下,保存退出命令是:

:wq

{注:vim的简单用法,$ vim fileName创建文件fileName,并打开;按i进入插入模式,输入文本;按esc进入命令模式后,按:wqZZ退出并保存。

}

这时候,你会发现你的项目目录中,出现一个名字为Podfile的文件,而且文件内容就是你刚刚输入的内容。注意,Podfile文件应该和你的工程文件.xcodeproj在同一个目录下。

这时候,你就可以利用CocoPods下载AFNetworking类库了。还是在终端中的当前项目目录下,运行以下命令:

$ pod install 

因为是在你的项目中导入AFNetworking,这就是为什么这个命令需要你进入你的项目所在目录中运行。

运行上述命令之后,小编的终端出现以下信息:

Analyzing dependencies

Downloading dependencies

Installing AFNetworking (2.5.0)

Generating Pods project

Integrating client project

[!] From now on use `CocoaPodsDemo.xcworkspace`

注意最后一句话,意思是:以后打开项目就用 CocoaPodsDemo.xcworkspace 打开,而不是之前的.xcodeproj文件。

你也许会郁闷,为什么会出现.xcodeproj文件呢。这正是你刚刚运行$ pod install命令产生的新文件。除了这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。 点击 CocoaPodsDemo.xcworkspace 打开之后工程之后,项目Xcode目录结构如下图:


你会惊喜地发现,AFNetwoking已经成功导入项目了(红框部分)!

现在,你就可以开始使用AFNetworking.h啦。可以稍微测试一下,在你的项目任意代码文件中输入:

#import <AFNetworking.h>或者#import "AFNetworking.h"

然后编译,看看是否出错。如果你严格按照小编上述的步骤来,是不可能出错的啦。

至此,CocoPods的第一个应用场景讲述完毕。别看小编写了这么多,其实过程是十分简单的。总结一下就是:

  1. 先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;
  2. 运行命令:`$ pod install.

下面,小编继续讲述第二种使用场景。

场景2:如何正确编译运行一个包含CocoPods类库的项目

你也许曾经遇到过(特别是新手iOS开发者)这种情况,好不容易在GitHub上找到一份代码符合自己想需求,兴冲冲下载下来,一编译,傻眼了,发现有各种各样错误。一看,原来是缺失了各种其他第三方类库。这时候莫慌,你再仔细一看,会发现你下载的代码包含了Podfile。没错,这意味着你可以用CocoaPods很方便下载所需要的类库。


下面,小编以代码 UAAppReviewManager 为例来说明如何正确编译运行一个包含CocoPods类库的项目。

UAAppReviewManager是一个能够让你方便地将提醒用户评分的功能加入你的应用中。当你去UAAppReviewManager的GitHub地址下载这份代码之后,打开Example工程(UAAppReviewManagerExample),编译,你会发现Xcode报告一大堆错误,基本都是说你编译的这份代码找不到某某头文件,这就意味着你要成功编译UAAppReviewManager的Example代码,必须先导入一些第三方类库。同时你会发现在UAAppReviewManagerExample文件夹下面有三个跟CocosPods相关的文件(文件夹):Podfile,Podfile.lock和Pods,如下图:


这时候,打开终端,进入UAAppReviewManagerExample所在的目录,也就是和Podfile在同一目录下,和场景1一样,输入以下命令(由于已经有Podfile,所以不需要再创建Podfile):

$ pod update

过几秒(也许需要十几秒,取决于你的网络状况)之后,终端出现:

Analyzing dependenciesFetching podspec for `UAAppReviewManager` from `../`Downloading dependenciesInstalling UAAppReviewManager (0.1.6)Generating Pods projectIntegrating client project[!] From now on use `UAAppReviewManagerExample.xcworkspace`.

这时候,再回到UAAppReviewManagerExample文件夹看一看,会看到多了一个文件UAAppReviewManagerExample.xcworkspace:


根据终端的信息提示,你以后就需用新产生的UAAppReviewManagerExample.xcworkspace来运行这个Example代码了。

打开UAAppReviewManagerExample.xcworkspace,编译运行,成功!

注意,这里有个小问题,如果刚刚你不是输入$ pod update,而是输入$ pod install,会发现类库导入不成功,并且终端出现下面提示:

[!] Required version (UAAppReviewManager (from `../`)) not found for `UAAppReviewManager`.Available versions: 0.1.6

这里的意思大概是Podfile文件过期,类库有升级,但是Podfile没有更改。$ pod install只会按照Podfile的要求来请求类库,如果类库版本号有变化,那么将获取失败。但是 $ pod update会更新所有的类库,获取最新版本的类库。而且你会发现,如果用了 $ pod update,再用 $ pod install 就成功了。

那你也许会问,什么时候用 $ pod install,什么时候用 $ pod update 呢,我又不知道类库有没有新版本。好吧,那你每次直接用 $ pod update 算了。或者先用 $ pod install,如果不行,再用 $ pod update



附录1

另外的CocoaPod用法  引自:http://blog.csdn.net/lengshengren/article/details/17675859

我们也可以更新我们的CocoaPods,同样也是使用ruby的gem命令

$ sudo gem update cocoapods


查找第三方库

如果我们不知道cocoaPods管理的库中,是否有你想要的库,那么你可以通过$ pod search xxx命令进行查找,以下是我用$ pod search sdwebimage查找到的所有可用的库:

使用

假设我的Desktop上有一个已经存在的一个项目名称叫做:CocoaPodsTest,首先,进入项目的根目录,并在根目录下创建一个名叫Podfile的文件(没有任何后缀):

$ cd Desktop CocoaPodsTest //进入项目根目录,根据自己项目实际目录

$ vim Podfile

注:vim的简单用法,$ vim fileName创建文件fileName,并打开;按i进入插入模式,输入文本;按esc进入命令模式后,按:wqZZ退出并保存。

然后,在Podfile文件中按以下的格式将依赖库的名字写出,例:

platformiOS '8.0' //平台,版本

pod 'SDWebImage' '3.5.1' //开源库名称、版本 具体通过查找功能查询

pod 'AFNetworking' '2.0.3'

保存Podfile文件后,执行如下安装的命令:

$ pod install

当安装命令执行成功后,会输出:


哈哈,看到类似这样的输出就是成功了。你所需要的第三方开源库都下载好了,并且设置好了相应的依赖以及编译参数。在我们以后用的时候一定要记住以下两点:

1. 最后一行是一个警告,提醒我们需要注意:从现在开始,需要通过xxx.xcworkspace打开的我们的项目。而不是之前我们一直用的xxx.xcodeproj

2. 当我们每次修改了Podfile这个文件后,一定要记得执行命令:$ pod install,还可以执行$ pod update来更新类库


附录2

创建你的第一个依赖关系

打开终端,并且打开存放你的“CocoaPodsExample”工程的文件夹。输入如下命令:

touch Podfile 
open -e Podfile

TextEdit会被打开,你可以往打开的空白Podfile中添加内容了。

我们往Podfile中加入如下内容:

platform :iOS pod 'AFNetworking', '0.9.1'

如你所见,Podfile的格式很简单。首先,你设置platform为ios(因为有一些框架只支持iOS或者Mac OS X中的一个,而不是都有)。然后,你添加你的第一个依赖-“AFNetworking”,并且指定了,你需要的是0.9.1。

编辑Podfile,除了上面的方法,你还可以使用别的你喜欢的编辑工具,比如vim

有关Podfile的格式,你可以在A Podfile和Podfile(frames)中得到更详细信息

保存Podfile之后,我们可以开始配置你的工程了。

在终端中执行如下命令:

pod install



0 0
原创粉丝点击