cocoaPods 库版本管理工具

前言

项目中经常使用到Cocoapoads,所以,抽个时间来写个笔记!也希望对没用过CocoaPods的朋友们有帮助!
# 问什么推荐用CocoaPods呢?
没用过之前,我觉得CocoasPods 好麻烦,而且,安装步骤多!不想用!后来,去公司工作了以后,发现实际项目开发中经常用,我自己也吃过亏!所以,极力推荐使用CocoaPods!

  • 1、因为一个项目要用到几个或上10个以上的第三方框架,你得用手托到项目里!是不是很烦?,
  • 2、突然,第三方框架的作者修改了某个文件,意味着那个框架又得更新!你是不是又得把项目里的框架删除掉!再到git上下载最新版本的框架,然后,又手动拖进来!好麻烦,有木有!
  • 3、我说多少也没用,如果你没遇到这种情况!废话少说!一定要用CocoaPods,哪怕你是个刚入门的菜鸟!
  • 4、/Users/用户名/Library/Application Support/Developer/Shared/Xcode/Plug-ins

如何下载和安装CocoaPods?

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

  • 1、升级Ruby环境 --- 命令行可以直接复制!避免出错!

  • 终端输入:gem update --system

此时会出现:

成功.png
ERROR:  While executing gem ... (Gem::FilePermissionError)
You don‘t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

使用 sudo 开头。

sudo gem update --system

这个是因为你没有权限去更新Ruby
查看当前Ruby版本

ruby -v

升级Ruby环境,首先需要安装rvm

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

source ~/.bashrc

source ~/.bash_profile

查看rvm版本

ruby -v

或者 类似

rvm 1.29.7 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

查看列表

rvm list known

出现类似(如下):

# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
[ruby-]2.3[.8]
[ruby-]2.4[.5]
[ruby-]2.5[.3]
[ruby-]2.6[.0]
ruby-head

选择你的版本:(这里我选择了 2.6.0)

 rvm install 2.6.0

接下来就慢慢等....
如果提示 Homebrew 错误

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

  • 2、安装CocoaPods时我们要访问cocoapods.org,该网站可能被我们大天朝墙了,这样下载安装可能会是龟速,幸好我们可以用淘宝的Ruby镜像来访问该网站,方法如下:
0、sudo gem install cocoapods(这句被墙了,你试一下也无所谓!)
1、gem sources --removehttps://rubygems.org/

//等有反应之后再敲入以下命令

2、gem sources -ahttp://ruby.taobao.org/

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

gem sources -l

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

成功啦.png

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

$ sudo gem install cocoapods

如果失败(否则忽略):

sudo gem install -n /usr/local/bin cocoapods

等一分钟吧!CocoaPods就可以在你本地下载并且安装好了,不再需要其他设置。
如果还是不行,可以切换镜像:

sudo gem update --system

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

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

gem sources -l

结果如下:

*** CURRENT SOURCES ***

https://gems.ruby-china.com/

正式开始安装CocoaPods

sudo gem install -n /usr/local/bin cocoapods

pod setup

看看你下载的有多大:

cd ~/.cocoapods

du -sh *

如何使用CocoaPods 啊?

  • 1、接下来就是使用它,很简单,也是通过一两行命令就可以搞定!

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

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

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

pod search AFNetworking

可能遇到这样的问题:

――― TEMPLATE END ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

[!] Oh no, an error occurred.

解决:

sudo rm -fr ~/.cocoapods/repos/master

pod setup

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

这说明,AFNetworking是支持CocoaPods,所以我们可以利用CocoaPods将AFNetworking导入你的项目中。(找到你想要的也可以直接复制到Podfile里面);

  • 2、每个项目只需要一个Podfile文件!(注意,一定得是这个文件名,而且没有后缀)
    在终端中进入(cd命令)你项目所在目录,然后在当前目录下,利用vim创建Podfile,运行:
 vim Podfile

然后在Podfile文件中输入以下文字:(不写版本号,默认是最新的!!!)

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

以上的两句是在Github上的,可以在AFNetworking的github页面找到验证。这两句文字的意思是,当前AFNetworking支持的iOS最高版本是iOS 7.0, 要下载的AFNetworking版本是2.0。

然后保存退出。vim环境下,按下 键盘“ i ”字母,表示编辑,按下 键盘 esc 后 ,接着 按住shift +“ ;”分号。 保存退出命令是:

wq

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

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

 pod      install 

网速较慢推荐使用这个命令行:pod install --verbose --no-repo-update

然后终端出现以下信息:

EricmatoMacBook-Pro:CocoaPodsDemo ericwang$ pod install
Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.0.2)
Generating Pods project
Integrating client project

[!] From now on use CocoaPodsDemo.xcworkspace.

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

除了 Podfile 这个文件,你会发现还多了另外一个文件“Podfile.lock”和一个文件夹“Pods”。

现在,你就可以开始使用AFNetworking.h啦。

如果输入:(带尖括号),编译成功!

import <AFNetworking.h>

  • 那么下面的不用操作了!
    可以稍微测试一下,在你的项目任意代码文件中输入:

这样有可能不行!那就要在BuildSetting ---> User Header Search Patchs的里设置一下
双击--输入 ${SRCROOT} —> 后面 选择 recursive

屏幕快照 2015-11-14 16.59.48.png

然后,在 #import "ViewController.h" 头文件里输入:

import <AFNetworking.h>

或者

import "AFNetworking.h"

屏幕快照 2015-11-14 17.07.48.png

到此结束!!!

2、 如果突然又想添加一个库呢?

网速慢推荐:pod install --verbose --no-repo-update

So easy!!! (命令行)

  • 先pod search 你想要的库
  • 例如:pod search SDWebImage (回车,找到想要的!库)
    :看演示:
Pod Search SDWebImage.png

1、去到项目目录
2、vim Podfile 打开文件
3、输入名字 和 版本号:例如:pod 'SDWebImage', '~> 3.7.5'
4、运行:pod update

PS: 如果安装了插件,那更加简单了!!不用使用命令行了。(看我的第二篇介绍哈!

  • 下面的是使用插件,但是要先安装好插件!


    屏幕快照 2015-11-14 17.11.30.png

那几个英文因该可以看得懂吧!(试试就知道怎么用了!)
点击:


屏幕快照 2015-11-14 17.21.00.png
  • 然后:出现了界面:
屏幕快照 2015-11-14 17.23.16.png
  • 突然我想添加一个第三方库?
    直接添加啊!(复制、张贴,修改本版号而已!),这里我添加了:MJExtension框架!
屏幕快照 2015-11-14 17.26.48.png

然后安装和更新!就可以啦!

屏幕快照 2015-11-14 17.27.39.png

最后,看目录!多了一个 MJExtension 目录,对吧!

屏幕快照 2015-11-14 17.17.17.png

3、再次提醒:对于 iOS 上的 CocoaPods 项目,请尽量试用 pod install --no-repo-update --verbose ,这样会大大加快 pod install 的速度。

例如:向这个工程,是在GitHub上下载的,该作者把库全删除了,那么你就要使用到上面的命令,快速解决:


先要来的该工程文件目录下使用命令才行.png

总结

  • 1、先在项目中创建Podfile,Podfile的内容是你想导入的类库。一般类库的原作者会告诉你导入该类库应该如何写Podfile;(技巧,看Github 上作者对他的框架说明!一定会有的!)

  • 2、运行命令: pod install

  • 3、CocoaPods specs的镜像索引

在使用cocoapods进行update或者install的时候,会去更新获取pod specs。

所有的项目的podspec文件都托管在https://github.com/CocoaPods/Specs上。
第一次执行pod setup时,cocoapods会将这些podspec索引文件更新到本地的 ~/。cocoapods/目录下,

这个索引文件比较大,国内网络的问题,更新非常慢。

网上一个博主http://akinliu.github.io/2014/05/03/cocoapods-specs-/ ,对github上的specs仓库进行了镜像,
是每10分钟进行同步一次,基本和主仓库保持一致。

gitcafe和oschina都是国内服务器,在执行索引更新操作时,快很多。

使用方法:

pod repo remove master

pod repo add master https://gitcafe.com/akuandev/Specs.git

pod repo update

如果想用oschina的镜像,可以把第二条命令的地址换成oschina的即可。

pod repo add master http://git.oschina.net/akuandev/Specs.git

如果在pod install、或者pod update时,不想升级specs库,可以增加忽略参数

pod install --no-repo-update

pod update --no-repo-update

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

推荐阅读更多精彩内容