Cocoapods的安装及使用

简介

Cocoapods是OS X和iOS下的一个第三方库管理工具,并且支持Objective-C和swifit语言。通过Cocoapods为项目添加称为"Pods"的依赖库(这些库必须是Cocoapods所支持的),并且轻松实现第三方库的版本管理。 引入Cocoapods的意义:Cocoapods在引入第三方库时自动为我们完成各种配置,包括配置编译阶段、连接器选项、甚至是ARC环境下的-fno-objc-arc配置等;Cocoapods可以很方便的查找第三方库,可以快速方便的寻找到优秀的第三方库以及它们的各种信息。 原理:CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。 Cocoapods 官方网站: https://cocoapods.org/ Cocoapods整个项目托管在github上, 所有的Pods依赖库也都依赖github https://github.com/CocoaPods

一、 配置Ruby环境,安装CocoaPods

  • CocoaPods是基于ruby ecosystem的,需要ruby环境,使用ruby的gem命令。所以我们的系统要有ruby环境。然而Mac系统默认会安装好ruby环境。可在终端ruby -v查看ruby版本
//查看ruby版本
ruby -v
//输出信息
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin15]
  • 打开终端,依次执行输入的部分命令如下:
sudo gem update --system      //升级Ruby环境*
gem sources -l                               // 查看源列表
gem sources -remove https://rubygems.org/     // 将不需要的源移除掉
gem sources -a https://gems.ruby-china.org/      // 添加ruby-china源源(当然你有其他可用的源也可以)
sudo gem install cocoapods           // 安装cocoapods,需要输入用户密码,输入完成后,按回车键,需要等待许久后才能完成安装,成功安装后会有提示
pod --version       //查看是否安装成功,如果成功会显示pod的版本
pod setup   //这条命令是将Github上的开源库https://github.com/CocoaPods/Specs.git托管的Podspec索引文件都下载到本地 ,花费时间比较久,
pod search AFNetworking    // 搜索AFNetworking库
sudo gem uninstall cocoapods    //卸载CocoaPods

终端命令截图:

终端命令.png

当前CocoaPods版本

执行pod setup ,这条命令是将Github上的开源库https://github.com/CocoaPods/Specs.git托管的Podspec索引文件都下载到本地的~/.cocoapods/repos/master/路径下 ,花费时间比较久,所以可以选择直接从别的地方拷贝一份放到对应的目录下,或者手动去Github下载,下载完成后放到对应的目录下。

  • 通过如下终端命令下载到对应的位置,可以看到下载进度。
cd  ~/.cocoapods/repos/master/ 
git clone https://github.com/CocoaPods/Specs.git

终端命令下载

cocoapods文件目录.png

  • 搜索第三方库
pod search AFNetworking

搜索失败

搜索第三方库如果出现了上述错误,可以执行 rm ~/Library/Caches/CocoaPods/search_index.json来删除本地旧的search_index.json文件, 然后再次输入pod search AFNetworking进行搜索,pod search 命令会先查看有无search_index.json文件,如果不存在该文件,会自动根据master文件夹生成一个新的search_index.json文件, 这时会提示Creating search index for spec repo 'master'..,然后就耐心等待吧.......成功了之后就如下图:

搜索成功会显示类库的信息


二、安装成功,使用CocoaPods

在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。

  • 使用时需要新建一个名为 Podfile 的配置文件,放在主项目的根目录下(与TestFramework.xcodeproj文件同一层级),以我桌面上的TestFramework工程为例:

示例工程

用终端命令新建Podfile文件到主项目目录(关于终端命令的使用可以看看这篇Mac 终端命令大全):

① 、 cd到项目总目录
②、 创建Podfile配置文件

接着第①步,终端先执行vim Podfile命令 ,接着在键盘端输入 i,进入编辑模式,输入如下配置信息(也可以先跳过输入这一步,之后直接打开Podfile文件编辑):

platform:ios,’8.0’     //平台ios,Deployment Target 8.0
target “TestFramework" do        //关联TestFramework.xcodeproj
pod 'AFNetworking'        //导入三方库
pod 'MBProgressHUD' 
pod 'MJExtension', '~> 3.0.13'    //3.0.13是版本号
end

然后按Esc,并且输入“ :”号进入vim命令模式,然后输入wq,回车后就会发现TestFramework项目目录中多一个Podfile文件。

创建Podfile配置文件

编辑Podfile

生成Podfile文件

③ 、 执行 pod install ,生成管理三方库的Pods工程

下载三方库

命令执行完成后,需要导入的第三方库都已经下载完成并且设置好了编译参数和依赖,同时你需要注意:

  • 使用 CocoaPods 生成的 TestFramework.xcworkspace 文件来打开工程,而不是以前的 TestFramework.xcodeproj 文件;
  • 当需要更改Podfile文件配置信息时 ,比如删除或者增加三方库 ,直接编辑Podfile文件, 每次更改了 Podfile 文件后,你需要重新执行一次pod install命令,别忘了要cd 到Podfile文件所在目录。
  • 第三方库们都有人在维护升级,当我们需要更新下第三方库的版本时,就需要终端执行命令pod update。

生成TestFramework.xcworkspace

打开TestFramework.xcworkspace

  • 删除JSONKit库时的终端命令与Podfile文件:

删除JSONKit库时的终端命令与Podfile 文件

关于 Podfile.lock (引自:唐巧的博客

当你执行pod install之后,除了 Podfile 外,CocoaPods 还会生成一个名为Podfile.lock的文件,Podfile.lock 应该加入到版本控制里面,不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级时造成大家各自的第三方库版本不一致。

CocoaPods 的这篇 官方文档 也在What is a Podfile.lock一节中介绍了Podfile.lock的作用,并且指出:

This file should always be kept under version control.

三、使用CocoaPods管理的三方库

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏iOS 开发杂谈

git 奇技淫巧

和 revert 的区别:reset 命令会抹去某个 commit id 之后的所有 commit

13110
来自专栏Crossin的编程教室

【Git 第8课】 移除文件

有进就有出,有借就得有还。有添加文件,自然也必须得有移除文件。当不想继续对某个文件进行版本控制的时候,就需要把它从 Git 中移除。 从 Git 中移除一个文...

34970
来自专栏软件开发

一个小时学会Git

最近要与部门同事一起做技术分享,我选择了Git,因为Git 是一种在全球范围都广受欢迎的版本控制系统。在开发过程中,为了跟踪代码,文档,项目等信息中的变化,版本...

38350
来自专栏人人都是极客

Git与Repo快速入门

版本控制 版本控制是什么已不用在说了,就是记录我们对文件、目录或工程等的修改历史,方便查看更改历史,备份以便恢复以前的版本,多人协作。 一、原始版本控制 最原始...

345100
来自专栏计算机视觉与深度学习基础

Leetcode 40 Combination Sum II

Given a collection of candidate numbers (C) and a target number (T), find all u...

20090
来自专栏编程

git常用命令,你值得拥有

使用git已两三月了,最常用的几个命令倒是很熟悉,用的比较少的命令很是记不清,要多多探索这些命令,首先要有个帐号为所欲为,接下来开始正题 〉生成SSH $ ss...

19490
来自专栏Crossin的编程教室

【Git 第9课】 撤销修改

前面说了,如果你手滑删掉了一个文件,可以用 Git 帮你找回来。同样,如果一个文件被你改来改去面目全非,直到程序无法运行,你累感不爱想要回到开始的状态,Git ...

360110
来自专栏轻扬小栈

svn如此好的软件,竟现在才发现

24330
来自专栏TechBox

cocoapods从安装到使用什么是cocoapodscocoapods安装cocoapods使用CocoaPods常见问题参考文章

18520
来自专栏c#开发者

BizTalk开发小工具-批量更新发送端口订阅配置参数

最近公司的主要的数据交换都基于BizTalk完成,现在BizTalk已经成为不可缺少的数据交换核心。利用的就是BizTalk的发布/订阅模式。 因此在每个发送端...

35950

扫码关注云+社区

领取腾讯云代金券