CocoaPods是什么

当我们开发iOS项目时候,会经常使用到第三方类库,并且会使用很多。
大家的做法基本上都是到GitHub上下载一个一个的类库,然后导入到工程中,并且引入各种的类库,做各种的配置。有时候还要处理ARC与MRC的问题,很麻烦。
还有一种情况,就是当第三方类库出现升级的情况时候,我们还需要删掉旧的,下载新的,再重新导入。
以上问题超级的烦人。。。

CocoaPods就是类库管理工具,刚刚提到所有麻烦的操作,CocoaPods都能解决。
作为一名程序员,掌握CocoaPods已经和你会使用UIButton一样重要了!

安装CocoaPods

安装CocoaPods需要本地Ruby环境,默认情况下,Mac自带Ruby环境,可以通过在终端输入命令ruby -v查看Ruby版本,接下来进行安装,使用如下命令:

1
$ sudo gem install CocoaPods

输入以上命令,可能会一直没有反应,或者出现ERROR。注意了,我们在天朝,是有一堵墙的,挡住了,所以你安装失败。不过没关系,我们可以使用另外一个地址来访问CocoaPods。

既然官网地址被墙了,我们就使用淘宝的,淘宝的Ruby镜像可以帮助我们访问CocoaPods,分别在终端输入如下命令,将Ruby镜像替换为淘宝的镜像地址:

1
2
$ gem sources —remove https://rubygems.org/
$ gem sources -a http://ruby.taobao.org/

完成之后,我们可以使用如下命令来查看Ruby镜像是否已经指向了淘宝:

1
$ gem sources -l

如果看到如下信息,表示已经成功!!!

下面,重新执行安装命令,等待安装结束就可以了

1
$ sudo gem install CocoaPods

等待执行完毕,看到如下提示,恭喜你,安装完成。

如果遇到其它的安装问题,请自行Google解决吧。

使用CocoaPods

安装已经完成了,下面就来教大家如何使用。
做一个项目,项目中需要使用SDWebImage,看看如何使用CocoaPods进行安装
首先使用如下命令,查看CocoaPods是否支持SDWebImage类库

1
$ pod search SDWebImage

可以看到下面这些搜索结果,表示SDWebImage是可以的,

注意圈住的那一行,一会需要使用。这行信息是告诉CocoaPods去下载哪一个第三方类库和它的哪一个版本,是一条配置信息。

下面创建空的项目,然后使用CocoaPods往项目中导入SDWebImage类库:

1>. 创建项目 CocoaPods_Test,保存到桌面

2>. 在终端输入 cd空格,拖入项目文件夹,回车,进入项目所在的根目录

3>.通过命令行创建Podfile文件,该文件的作用是配置第三方类库的信息,就是告诉CocoaPods去管理哪些类库

1
$ vim Podfile

vim打开文件后,按i进入编辑模式,输入如下文字:

里面的pod 'SDWebImage', '~> 3.7.1'就是我们在上面圈住的那一行。
输入完成后按ESC退出编辑模式,接着输入:wq,并按回车键进行保存并退出。
上面的操作完成之后,我们可以在项目根目录发现一个没有后缀的Podfile文件,这就是刚刚创建的文件,里面保存了需要使用的第三方类库的信息。(注意:Podfile文件必须和.xcodeproj文件在同一目录下)

4>. 接下来,我们就可以使用命令来安装第三方类库了,(确保终端路径在项目根目录)运行如下命令:

1
$ pod install            

当我们看到这样的提示,就表示你操作成功:

注 意最后一句话:”Please close any current Xcode sessions and use ‘CocoaPods_Test.xcworkspace’for this project from now on”。这就是告诉我们,从现在开始需要使用这个文件来打开项目,而不在是之前的.xcodeproj

5>. 双击项目中的CocoaPods_Test.xcworkspace文件来打开项目,你会看到如下目录结构:

我们会发现多了一个Pods的依赖工程,打开Pods文件夹后,发现SDWebImage已经在这里面了。

6>. 现在,我们就可以在想要使用SDWebImage的文件中,引入需要的文件,然后就可以正常使用了。

7>. 到现在为止,你已经学会了如何使用CocoaPods来添加第三方类库。如果我们需要使用多个第三方类库,只需要修改Podfile文件就可以了,如下:

NOTE:怎么样,过程很简单吧。只需要: 1.查询 2.修改Podfile文件 3.安装 即可完成!

 其它

当我们想要重新安装CocoaPods的时候,需要卸载这个东西,很简单,只需要执行以下命令即可:

1
$ sudo gem uninstall CocoaPods                

如果安装了多个版本,选择All,即可全部卸载!

第三方版本号的各种写法与含义:

1
2
3
4
5
6
7
8
9
pod 'AFNetworking' //不显式指定依赖库版本,表示每次都获取最新版本
pod 'AFNetworking', '2.0' //只使用2.0版本
pod 'AFNetworking', '>2.0' //使用高于2.0的版本
pod 'AFNetworking', '>=2.0' //使用大于或等于2.0的版本
pod 'AFNetworking', '<2.0' //使用小于2.0的版本
pod 'AFNetworking', '<=2.0' //使用小于或等于2.0的版本
pod 'AFNetworking', '~>0.1.2' //使用大于等于0.1.2但小于0.2的版本,相当于>=0.1.2并且<0.2.0
pod 'AFNetworking', '~>0.1' //使用大于等于0.1但小于1.0的版本
pod 'AFNetworking', '~>0' //高于0的版本,写这个限制和什么都不写是一个效果,都表示使用最新版本

转载于:https://www.cnblogs.com/MyBlogZH/p/5526670.html

CocoaPosd使用详解相关推荐

  1. 2018 CocoaPods安装详解

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/wyz670083956/article ...

  2. 从命令行到IDE,版本管理工具Git详解(远程仓库创建+命令行讲解+IDEA集成使用)

    首先,Git已经并不只是GitHub,而是所有基于Git的平台,只要在你的电脑上面下载了Git,你就可以通过Git去管理"基于Git的平台"上的代码,常用的平台有GitHub.Gi ...

  3. JVM年轻代,老年代,永久代详解​​​​​​​

    秉承不重复造轮子的原则,查看印象笔记分享连接↓↓↓↓ 传送门:JVM年轻代,老年代,永久代详解 速读摘要 最近被问到了这个问题,解释的不是很清晰,有一些概念略微模糊,在此进行整理和记录,分享给大家.在 ...

  4. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  5. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  6. 深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

    深度学习优化函数详解系列目录 深度学习优化函数详解(0)– 线性回归问题 深度学习优化函数详解(1)– Gradient Descent 梯度下降法 深度学习优化函数详解(2)– SGD 随机梯度下降 ...

  7. CUDA之nvidia-smi命令详解---gpu

    nvidia-smi是用来查看GPU使用情况的.我常用这个命令判断哪几块GPU空闲,但是最近的GPU使用状态让我很困惑,于是把nvidia-smi命令显示的GPU使用表中各个内容的具体含义解释一下. ...

  8. Bert代码详解(一)重点详细

    这是bert的pytorch版本(与tensorflow一样的,这个更简单些,这个看懂了,tf也能看懂),地址:https://github.com/huggingface/pytorch-pretr ...

  9. CRF(条件随机场)与Viterbi(维特比)算法原理详解

    摘自:https://mp.weixin.qq.com/s/GXbFxlExDtjtQe-OPwfokA https://www.cnblogs.com/zhibei/p/9391014.html C ...

最新文章

  1. 挑战极限--有本事拿.Net+SQL SERVER试试4秒极限!
  2. flutter怎么手动刷新_如何手动刷新或重新加载Flutter Firestore StreamBuilder?
  3. docker 添加端口映射_Docker三大核心概念之容器
  4. 三消也玩策略?这款游戏没那么简单——《妙连千军》
  5. 一张图读懂阿里巴巴一站式研发协同云——云效
  6. 010.KVM虚机冷迁移
  7. Linux系统中/dev/mtd与/dev/mtdblock的区别
  8. 谈谈对python这门课的认识_【Python公开课】1-认识Python
  9. 床位的摆放有五大禁忌
  10. 查看nginx版本_2:快速搭建Nginx
  11. PHP printf()函数格式化使用详解
  12. e值的MonteCalo法估计
  13. atitit agt sys 设置下级代理功能设计.docx
  14. web测试之总流程归纳
  15. 中兴b860a拆机_【中兴ZXV10B860A魔盒外观展示】接口|线材|插线_摘要频道_什么值得买...
  16. 阿里巴巴开发规约之编程规约(1)
  17. srs源码分析2-浅析state_threads
  18. 二建和一建的考试教材一样吗
  19. 二维小球完全弹性碰撞绝对坐标速度计算公式
  20. 广州大学数据结构课程设计

热门文章

  1. js断点和调试学习总结3
  2. 图解命令行http工具curl使用初步
  3. 图解VC++ opengl环境配置和几个入门例子
  4. 树、森林与二叉树的相互转换
  5. 突发:ORA-12541:TNS:无监听程序 的调查解决方法(监听日志已满导致)
  6. Lesson 008 —— python 初识
  7. SSH远程联机Linux服务器简易安全设定
  8. Linux下搭建jenkins+svn+http+maven自动化部署
  9. 【Linux开发】linux设备驱动归纳总结(一):内核的相关基础概念
  10. 一个用于分页的page类