因为要重构播放器库,所以就需要参考网上的开源项目,在播放器开源项目这块,kxmovie开源项目是值得参考的一个项目。在github下载下来后,运行该工程,发现其用到了cocoapods来管理第三方库,以前我做项目都是将第三方库直接下载然后将源文件导入到工程,这种做法有其好处也存在一定的弊端,好处是便于项目的维护,方便的知道过去使用的第三方库是个什么情况,还可以根据实际需求修改,弊端就是第三方库的更新需要自己下载最新的再将旧的替换(手动更新)。通过cocoapods来管理第三方库,可以获取到最新的第三库将其引用到项目中,而且不需要自己手动去添加该第三方库的依赖库,虽然cocoapods用起来方便,但是也不一定全好,因为项目运行链接第三方库的时候,比如之前自己改过cocoapods引用进来的第三方库,这时就悲剧了,加载的第三方库是重新从网络上获取的,网上一些开发者也提到了,通过cocoapods管理项目中的第三方库不便于项目回滚。所以,是否选择cocoapods要根据实际情况来定。

  要使用cocoapods,对于之前没有安装过cocoapods的开发者来说,首先就是要在Mac上安装cocoapods,在Mac终端执行命令 sudo gem install cocoapods,执行结果如下

但是没有发现cocoapods源,因为ruby的软件源rubygems.org使用的亚马逊的云服务,被墙了,需要更新一下ruby的源,使用其他能支持的源---->国内淘宝的源:

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

gem sources -a http://ruby.taobao.org/

gem sources -l

执行上面的命令结果如下:

  现在,更新源成功了,可以进行安装了,继续在Mac终端执行命令 sudo gem install cocoapods,执行结果如下:

.............

.............

  接下来在Mac终端输入以下命令:pod setup  

注意:This process will likely take a while as this command clones the CocoaPods Specs repository 

into ~/.cocoapods/ on your computer.

  来看看我们安装的cocoapods的版本信息,在Mac终端上执行命令 pod --version,执行结果如下:

  OK,cocoapods安装成功了。

  若要卸载cocoapods, 就在Mac终端执行命令 sudo gem uninstall cocoapods

  参考文章:用CocoaPods做iOS程序的依赖管理

       iOS.CocoaPods.0

        OS X升级到10.10之后使用pod出现问题的解决方法

        osx升级到10.10后,用pod install报错最终解决办法

 

  

  cocoapods安装好了,接下来就该用它来做事了。使用CocoaPods管理第三方库的例子如下:

  使用Xcode,在工程根目录下,新建立一个空白的Podfile文档,然后在里面添加以下内容

platform:ios,'6.0'

pod 'FMDB', '~>
2.0'

pod 'AFNetworking',
'~> 1.1.0'

pod
'JSONKit','~>1.4'
    保存,然后配置工程,
在系统终端中,使用cd命令切换到项目根目录下,输入命令: pod install

  执行完之后,CocoaPods在工程目录下创建了一个文件夹“Pods”,该文件夹存放所有依赖的库,另外还创建了一个.xcworkspace文件,配置完之后需使用.xcworkspace文件打开工程。

  参考文章:CocoaPods安装和使用教程

        iOS系列译文:深入理解 CocoaPods

  对于kxmoive这个工程,它使用cocoapods就引用了一个库,对于我而言,就因为引用一个库反复折腾cocoapods,肯定不爽,浪费时间。所以,我就想删掉kxmoive工程中cocoapods的所有相关东西。但是,删除cocoapods后,出现了如下错误:

  diff: /../Podfile.lock: No such file or directory diff: /Manifest.lock: No such file or directory error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

  我参考文章 从工程中删除Cocoapods,顺利解决了这个问题。对于上面的这个报错,当工程中有使用cocoapods的时候,运行项目也可能会出现这个问题,那就按照报错提示,重新更新pod,即在Mac终端执行pod install,参考文章Xcode工程使用CocoaPods管理第三方库新建工程时出现错误

  

笔谈 cocoapods的安装与使用的更多相关文章

  1. CocoaPods的安装、使用、以及遇到的问题

    CocoaPods是什么? 当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等.可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而 ...

  2. iOS 最新版 CocoaPods 的安装流程

    iOS 最新版 CocoaPods 的安装流程1.移除现有Ruby默认源$gem sources --remove https://rubygems.org/2.使用新的源$gem sources - ...

  3. 最新版 CocoaPods 的安装流程

                                       iOS 最新版 CocoaPods 的安装流程     1.移除现有Ruby默认源 $gem sources --remove h ...

  4. Cocoapods的安装

    1.先升级Gem sudo gem update --system 2.切换cocoapods的数据源 [先删除,再添加,查看] gem sources --remove https://rubyge ...

  5. Cocoapods的安装,卸载和使用

    [一]Cocoapods的安装 (1)Cocoapods的官方网站为: https://cocoapods.org/ .如果你的电脑已经安装了Ruby开发环境,那么在终端(Terminal)中使用以下 ...

  6. OS10.11系统下 安装cocoapods 以及 安装cocoapods-xcode-plugin-master插件来加载三方框架

    http://www.cnblogs.com/cheng923181/p/4883476.html OS10.11系统下 安装cocoapods 以及 安装cocoapods-xcode-plugin ...

  7. 【原】iOS学习46之第三方CocoaPods的安装和使用(通用方法)

    本文主要说明CocoaPods的安装步骤.使用说明和常见的报错即解决方法. 1. CocoaPods 1>  CocoaPods简介 CocoaPods是一个用来帮助我们管理第三方依赖库的工具. ...

  8. CocoaPods的安装(图文并茂)OS X 10.11 系统

    这里是前言,可以跳过前言部分直接跳到后面"这里正式安装"开始看步骤: 系统:OS X EI Capitan 版本:10.11.2 开发工具:XCode:7.2 先给一个挺不错的关于 ...

  9. CocoaPods的安装及使用/利用开源库Diplomat实现分享及第三方登录/git的使用

    <<史上最简洁版本>> 1.gem sources -l查看 当前的源 //1.1 sudo -i..以下都是以管理员的身份来操作的 2.gem sources --remov ...

随机推荐

  1. SSL证书原理讲解

    一直以来都对数字证书的签发,以及信任等事情一知半解.总算有个闲适的周末来总结和深入一下相关的知识. CA: CA(Certificate Authority)是证书的签发机构,它是负责管理和签发证书的 ...

  2. nanopi的ds18b20温度传感器测试

    参考(抄袭)资料在这里 先接线,3.3v,gnd,数据输出脚,我是PG11 vim /boot/armbianEnv.txt overlays=w1-gpio param_w1_pin=PG11 pa ...

  3. 图像的ROI区域选择与复制

    [opencv学习笔记六]图像的ROI区域选择与复制 孜然   7 人赞同了该文章 图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感 ...

  4. Java13新特性 -- switch表达式

    引入了yield语句,用于返回值: 和return的区别在于:return会直接跳出当前循环或者方法,而yield只会跳出当前switch块. @Test public void testSwitch ...

  5. python中的绝对导入与相对导入,from __future__ import absolute_import的区别

    相对导入:在不指明 package 名的情况下导入自己这个 package 的模块,比如一个 package 下有 a.py 和 b.py 两个文件,在 a.py 里 from . import b ...

  6. DIY:从零开始写一个 SQL 构建器

    最近在项目中遇到了一个棘手的问题,因为 EF Core 不支持直接生成 Update 语句,所以这个项目就用到了 EFCore.Plus 来实现这个功能,但是 EFCore.Plus 对 SQLite ...

  7. RabbitMQ使用及与spring boot整合

    1.MQ 消息队列(Message Queue,简称MQ)——应用程序和应用程序之间的通信方法 应用:不同进程Process/线程Thread之间通信 比较流行的中间件: ActiveMQ Rabbi ...

  8. 三层交换,单臂路由,vtp

  9. git revert commitid

    是生成一个和commitid的提交完全相反的提交.类似倒转.

  10. PHP设计模式 - 解释器模式

    给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子. 角色: 环境角色(PlayContent):定义解释规则的全局信息. 抽象解释器(Empress):定 ...