前言
项目中经常使用到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
此时会出现:
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
只有在终端中出现下面文字才表明你上面的命令是成功的:
这时候,你再次在终端中运行:
$ 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
- 那么下面的不用操作了!
可以稍微测试一下,在你的项目任意代码文件中输入:
这样有可能不行!那就要在BuildSetting ---> User Header Search Patchs的里设置一下
双击--输入 ${SRCROOT} —> 后面 选择 recursive
然后,在 #import "ViewController.h" 头文件里输入:
import
或者
import "AFNetworking.h"
到此结束!!!
2、 如果突然又想添加一个库呢?
网速慢推荐:pod install --verbose --no-repo-update
So easy!!! (命令行)
- 先pod search 你想要的库
- 例如:pod search SDWebImage (回车,找到想要的!库)
:看演示:
1、去到项目目录
2、vim Podfile 打开文件
3、输入名字 和 版本号:例如:pod 'SDWebImage', '~> 3.7.5'
4、运行:pod update
PS: 如果安装了插件,那更加简单了!!不用使用命令行了。(看我的第二篇介绍哈!)
-
下面的是使用插件,但是要先安装好插件!
那几个英文因该可以看得懂吧!(试试就知道怎么用了!)
点击:
- 然后:出现了界面:
- 突然我想添加一个第三方库?
直接添加啊!(复制、张贴,修改本版号而已!),这里我添加了:MJExtension框架!
然后安装和更新!就可以啦!
最后,看目录!多了一个 MJExtension 目录,对吧!
3、再次提醒:对于 iOS 上的 CocoaPods 项目,请尽量试用 pod install --no-repo-update --verbose ,这样会大大加快 pod install 的速度。
例如:向这个工程,是在GitHub上下载的,该作者把库全删除了,那么你就要使用到上面的命令,快速解决:
总结
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