CocoaPods使用详解

时间:2022-04-27
本文章向大家介绍CocoaPods使用详解,主要内容包括CocoaPods简介、CocoaPods安装与使用、CocoaPods安装、CocoaPods使用、创建Podfile文件、附件、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。

CocoaPods简介

什么是CocoaPods?每种语言发展到一个阶段,就会出现相应的依赖管理工具。好比Java 语言的 Maven,nodejs 的 npm,Android的grandle。而对于ios平台来说,CocoaPods是ios开发平台一个非常流行的第三方库管理工具。在开发过程中,根据项目复杂程度,通常我们会需要外链很多的第三方库。而添加这些第三方库的过程有时候会变成一场灾难。因此使用CocoaPods来代替我们管理这些库,将可以大幅缩短我们的开发时间。 CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。在使用CocoaPods的时候我们并不需要关注它的原理,当我们需要github上的某个开源库的时候,我们使用CocoaPods添加到我们的项目即可。

CocoaPods原理

CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。

CocoaPods安装与使用

Ruby

CocoaPods可以很方便的使用Mac自带的RubyGems安装(Mac系统默认安装了Ruby环境),如果不确定自己系统中是否有Ruby的,可以使用ruby -v来查看,如果有版本信息说明已经安装。

当然,系统的ruby是比较老的,我们可以对其进行升级。在终端输入命令:

gem update --system

如果出现上面的情况,表明你没有权限去升级Ruby。这时候我们需要使用下面的命令,并输入密码。

sudo gem update --system

当然,笔者这里已经是最新的了。

CocoaPods安装

CocoaPods的安装是非常简单的,但是需要注意的是ruby的软件源rubygems.org因为使用亚马逊的云服务,好像被我天朝隔离了。所以国内在安装的时候一般使用国内的镜像。 1,首先查看当前ruby的源:

gem sources -l 

2,移除现有的Ruby镜像:

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

3,添加国内最新镜像源(不过貌似淘宝的Ruby镜像已经不更新,所以还是建议访问外国网站)

gem source -a https://gems.ruby-china.org/

4,再次查看当前ruby的源

gem sources -l

如果出现如下字样,说明ruby的软件源已经设置OK了。

*** CURRENT SOURCES ***

https://ruby.taobao.org/

5,安装CocoaPods,安装命令如下:

sudo gem install cocoapods

安装过程中,常见的错误如下:

ERROR:  While executing gem ... (Errno::EPERM)

Operation not permitted - /usr/bin/xcodeproj

解决方案1: 执行下面的命令并重启。

sudo nvram boot-args="rootless=0"
sudo reboot

此时,在执行安装命令:

sudo gem install cocoapods -V

如果依旧有错误,使用第二个方法:

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

当出现Setup completed的时候,说明CocoaPods安装成功。

注:当我们输入命令pod setup之后,界面卡住不动了,说明Cocoapods在将它的信息下载到 ~/.cocoapods里。我们可以使用命令command+n新建一个终端窗口,执行cd ~/.cocoapods/进入到该文件夹下,然后执行du -sh *来查看文件大小,每隔几分钟查看一次

CocoaPods使用

首先我们使用命令搜索下AFNetworking库,命令如下:

pod search AFNetworking

不出意外的话,会报错。

这是因为之前pod search的时候生成了缓存文件search_index.json,执行命令来删除该文件,命令如下:

rm ~/Library/Caches/CocoaPods/search_index.json

然后再次输入命令“pod search AFNetworking”进行搜索,这时会提示Creating search index for spec repo ‘master’..,然后等待一会就会有结果了。

创建Podfile文件

在工程中创建一个Podfile文件,先定位到项目目录下,然后使用命令创建Podfile文件,命令如下:

touch Podfile

然后你在你的工程目录下可以看到多了一个Podfile文件。 然后,使用vim编辑Podfile文件。

进来之后紧接着按键盘上的英文’i’键,下面的”Podsfile” 0L, 0C将变成– INSERT –。然后就可以编辑文字了,输入以下文字了。

platform :ios, '10.3'
target 'weibo' do
pod "AFNetworking", "~> 3.1.0"
end

注:’weibo’就是你自己的工程名字,platform :ios, ‘8.0’代表当前AFNetworking支持的iOS最低版本是iOS 7.0, ‘~> 3.1.0’代表要下载的AFNetworking版本是3.1.0及以上版本。 有人问,那么怎么保存输入的内容到Podfile文件中呢?先按左上角的esc键,再按:键,再输入wq,点击回车,就保存并退出去了。

下载库到Xcode中

在终端使用命令把库下载到Xcode中。命令如下:

pod install

当我们再次打开工程目录会看到多了一个后缀名为.xcworkspace文件。以后打开工程就双击这个文件打开了,而不再是打开.xcodeproj文件。

到此,关于CocoaPods的使用就讲解完了。

附件

现在Podspec文件都托管在https://github.com/CocoaPods/Specs。第一次执行pod setup时,CocoaPods会将这些podspec索引文件更新到本地的~/.cocoapods目录下,当我们想在国内的服务器建立了Cocoapods索引库的时候,我们可以按照如下的方法:

pod repo remove master

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

pod repo update

例如,将以上代码中的 https://gitcafe.com/akuandev/Specs.git 替换成 http://git.oschina.net/akuandev/Specs.git 即可使用oschina上的镜像。

参考:http://www.jianshu.com/p/b64b4fd08d3c