项目基础架构之一 cocoaPods搭建项目环境

CocoaPods是什么?

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,SDWebImage,AFNetWorking等等。但是可能某两个类库都用到其他相同的类库,像ShareSDK和WechatOpenSDK都包含的libWeChatSDK.a,这也许是比较特殊的情况。那么手动一个个去下载所需类库十分麻烦。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。所以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/



查看当前源

gemsource-l

移除淘宝源

gem sources --remove https://ruby.taobao.org/

更换新源

gem source-a https://gems.ruby-china.org

如果刚开始配置那就使用下面的命令行吧

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/

完成上面步骤后执行安装cocoapods命令

输入:sudo gem install cocoapods


需要安装对应的Ruby否则会报错哦

(1)如果出现错误, 则需要根据提示安装相应版本的ruby, 详细步骤如下“使用RVM对Ruby进行升级”

(2)更换镜像 淘宝镜像一直报ssl证书缺少,后来我把它换了,换之后挺好的,不会报这个错误了。

5.查看当前cocoaPods的版本号, 验证是否安装成功

输入:pod --version

6.在终端输入pod search fmdb, 验证是否有第三方的搜索结果,如果出现搜索结果则安装成功。

b.使用RVM对Ruby进行升级

1.先查看现在的Ruby版本号

输入命令:ruby -v

2.安装 RVM

RVM:Ruby Version Manager,Ruby版本管理器,包括Ruby的版本管理和Gem库管理(gemset)

a.先输入:

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

b.然后输入:

source ~/.bashrc  

source ~/.bash_profile 

c.测试是否安装正常

rvm -v  

3.用RVM升级Ruby

a.查看当前ruby版本

输入:ruby -v 

b.列出已知的ruby版本

输入:rvm list known 

c.安装所需要版本的Ruby, 例如

输入:rvm install 2.5.2

4.安装完成之后,查看是否安装成功

输入:ruby -v

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

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


使用cocoaPods安装第三方的步骤

1.进入工程文件夹: 在终端输入cd, 然后把文件夹放进去

2.初始化pod文件: pod init

3.打开podfile文件:删代码, 只保留 platform :ios, '8.0'

4.输入命令搜索想要的第三方:pod search mbprogress

5.粘贴 pod ‘名字’, ‘版本’, 进入podfile文件

6.在终端输入: pod install

例子:

platform :ios, '8.0'

pod 'AFNetworking', '~> 3.0.3'

注意:如果安装好一个第三方后想再安装第二个第三方只需执行 1, 4, 5, 6步骤

注意:如果安装第三方时出现The dependency `AFNetworking (~> 3.1.0)` is not used in any concrete target.错误

解决方法:

(1) 检查CocoaPods的版本

            pod --version

(2) 升级或安装最新版本(目前版本1.0.1)

           注意:如果cocoapods已经是1.0.1版本,则跳过该步骤直接进入第三个步骤。

           升级命令:sudo gem update -n /usr/local/bin --system

     安装命令:sudo gem install -n /usr/local/bin cocoapods

(3)修改Podfile的内容

修改前的Podfile文件的内容:      

    platform:ios,'7.0'

    pod 'MJRefresh', '~> 3.1.0'

    pod 'SDWebImage', '~> 3.7.6'

    pod 'SVProgressHUD', '~> 2.0.3'

    pod 'AFNetworking', '~> 3.1.0'

修改后的Podfile文件的内容:

platform :ios, '8.0'

use_frameworks!

target 'TestThirdParty' do

pod 'AFNetworking', '~> 2.6'

//可以连续pod多个第三方

// pod 'B','版本'...

    end

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

$ sudo gem install cocoapods


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

这就是耐心点检查ruby和pods库那个缺少加那个  一遍一遍尝试,最后让你开始怀疑人生的时候,它莫名其妙就好了。

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

推荐阅读更多精彩内容