CocoaPods的安装和使用

1.CocoaPods的安装

首先要了解Gem,这是一个管理Ruby库和程序的标准包,它通过Ruby Gem(如 http://rubygems.org/ )源来查找、安装、升级和卸载软件包,非常的便捷。

CocoaPods是以Ruby gem包的形式被安装的,也就是说CocoaPods插件是由Ruby语言写的库文件,可以通过gem命令安装CocoaPods。

1.1安装步骤

1.更换Gem源

由于在国内访问Gem默认的源下载更新都会异常的慢,换成国内的源会速度会快一些。

以前都是替换到 https://ruby.taobao.org/源,但是现在RubyGems 镜像的管理工作以后由 Ruby China 负责了,因此使用https://gems.ruby-china.com/源。

// 移除默认的源
$ gem sources --remove https://rubygems.org/
// 添加国内的源
$ gem sources -a https://gems.ruby-china.com/
// 查看源
$ gem sources -l

https://gems.ruby-china.com
# 确保只有 gems.ruby-china.com
2.安装CocoaPods

先卸载,再安装

# 卸载操作
$ sudo gem uninstall cocoapods
# 安装
$ sudo gem install cocoapods

或指定版本安装:

gem install cocoapods -v 1.5.2

注意:在Mac OS X 10.11上安装cocoapods会出现以下错误。

ERROR:  While executing gem ... (Gem::DependencyError)
    Unable to resolve dependencies: cocoapods requires cocoapods-core (= 1.2.0), cocoapods-downloader (< 2.0, >= 1.1.3), cocoapods-trunk (< 2.0, >= 1.1.2), molinillo (~> 0.5.5), xcodeproj (< 2.0, >= 1.4.1), colored (~> 1.2), escape (~> 0.0.4), fourflusher (~> 2.0.1), gh_inspector (~> 1.0), nap (~> 1.0), ruby-macho (~> 0.2.5); activesupport requires i18n (>= 0.6.9, ~> 0.6), tzinfo (~> 1.1), minitest (~> 5.1); cocoapods-plugins requires nap (>= 0)

这种情况下,使用 Homebrew 安装 ruby,

# 先安装 Homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 再安装 ruby
$ brew install ruby

再执行以下命令更新 gem:

sudo gem install -n /usr/local/bin cocoapods
3.初始化CocoaPods。

目的是将网络上的第三方框架下载到本地,缓存起来。

$ pod setup

注意:

1.如果速度比较慢,直接停止初始化(control + c),参照第4步操作。如果速度可以,则不需要第4步操作。

2.并不是每一个第三方框架都会被下载到本地,能否被下载到本地的前提是,该第三方框架需要支持CocoaPods。

3.检验第三方框架是否支持CocoaPods。

3.1、可以在GitHub上查看框架的目录中是否有.podspec文件,只要含有这个文件,就支持CocoaPods,就会被下载到本地。

3.2、在GitHub搜索cocoapods,找到CocoaPods/Specs,其目录中的文件名称就是支持CocoaPods的第三方框架。

3.3、登录CocoaPods官网https://cocoapods.org/,搜索框架是否支持。

4.更换镜像服务器

如果第3步比较慢,所以要把第三方框架镜像的源更换到国内的源,这样会比较快一些。

// 移除master
$ pod repo remove master
// 添加国内镜像
$ pod repo add master https://git.coding.net/CocoaPods/Specs.git
// 执行步骤4,初始化CocoaPods
$ pod setup

注意:
在执行移除master命令时,如果报错 [!] repo master does not exist,不用理会,直接执行第二条命令。
如果执行第二条命令时报错:[!] To setup the master specs repo, please run pod setup,此时放弃执行以上三条命令,通过以下方法解决。
参考官方(http://guides.cocoapods.org/terminal/commands.html#pod_setup) 对pod setup命令的解释,可以使用git命令,将 Specs.git 文件 clone 到 /Users/用户名/.cocoapods/repos 目录下,并把文件名改为master

git clone https://git.coding.net/CocoaPods/Specs.git ~/.cocoapods/repos/master

此时就解决了上述报错的问题。

2.CocoaPods的使用

2.1、更新第三方库信息

由于第三方框架是不断更新的,所以要定时更新第三方库

pod repo update
2.2、搜索第三方库

能被搜索到的第三方库,才可以使用CocoaPods管理

$ pod search 关键字

3.命令行使用CocoaPods

3.1、进入项目工程所在目录
$ cd ~/项目文件夹
3.2、新建Podfile, 通过这个命令填写需要的框架
$ vim Podfile //然后输入i:进入编辑状态
3.3、Podfile文件的格式
platform :ios, '8.0'
use_frameworks!
target 'project名字' do
  pod '框架名字'
  pod '框架名字', '~> 版本号'
end

ESC:退出编辑模式,再入:wq:保存并退出。

注意:在Swift中,Podfile的第一句必须写上use_frameworks!

3.4、解析Podfile,安装第三方框架
$ pod install
3.5、解析Podfile,升级第三方框架
$ pod update

注意,如果使用CocoaPods过程中出现了莫名其妙的问题,执行以下命令。

$ sudo gem update --system
$ sudo gem install cocoapods
$ pod setup

4.使用CocoaPods插件

  • 2.解压缩,打开CocoaPods.xcworkspace,运行。

此时插件就安装好了。

  • 3.重新打开Xcode,如下图所示选择

此时CocoaPods插件就可以使用了

  • 4.填写需要集成的框架名称
    填写需要集成的框架


注意格式,参考 https://guides.cocoapods.org/using/the-podfile.html

  • 5.安装框架


    集成框架

注意, 如果还是不能使用,请看以下的注意点。

5.使用第三方框架的注意点

在Swift中尽量不要手动拖拽第三方框架到项目中,因为swift具有命名空间的概念,这样容易冲突。

在Swift中建议使用CocoaPods管理第三方框架,此时如果第三方框架是OC语言写的,点击查看头文件,看到的代码格式为swift格式。

如果在使用CocoaPods时报错,点击 target->Build Phases,然后点击左上角的+按钮,选择New copy Files Phase,在该页面最下面,选择FrameWork,再点击+选择Pods.Framework



在Swift中,编辑Podfile文件时,要添加 use_frameworks! 这句话。

使用git提交代码时,默认不会提交CocoaPods相关的内容,此时需要打开命令行,添加CocoaPods到git远程仓库。

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

推荐阅读更多精彩内容