CocoaPods的安装和使用

简介: 引言:CocoaPods是一个可以帮你集中管理第三方库的开源项目,运行在Ruby的环境下,基于GitHub托管优势,你可以很方便的查阅目前依赖于CocoaPods的资源.

引言:

CocoaPods是一个可以帮你集中管理第三方库的开源项目,运行在Ruby的环境下,基于GitHub托管优势,你可以很方便的查阅目前依赖于CocoaPods的资源.

并且,CocoaPods是可靠,稳定,安全的.可以为你在使用第三方库资源时节省大部分的配置和部署时间.更专心的专注于Coding!


部署的环境:

硬件:Retina Macbook Pro 

软件:OS X Mountain Lion 10.10.1

Ruby版本:2.2.0


参考文章:

1:如何安装Ruby(如果打不开请使用百度快照)

http://www.zikercn.com/node/41

2:如何使用CocoaPods

http://blog.devtang.com/blog/2012/12/02/use-cocoapod-to-manage-ios-lib-dependency/

3:Ruby中国针对2.0.0发布帖子:

http://ruby-china.org/topics/8896

4:如果安装失败,请参考下面两贴

http://stackoverflow.com/questions/9626729/how-do-you-install-build-ruby-1-9-3-on-osx-lion

http://stackoverflow.com/questions/14592945/cannot-compile-ruby-1-9-3/14594287#14594287

5:Use CocoaPods With Swift (在 Swift 中使用 CocoaPods)

http://andelf.github.io/blog/2014/06/23/use-cocoapods-with-swift/



第一步:安装Brew

详细步骤和介绍请参阅我的另一篇博客:


第二步:更新Ruby:

通过Brew将Ruby更新到最新版本,OS X 已经自带了Ruby不过版本偏低.

brew install ruby

更新成功以后重启终端,并执行以下命令来检查一下Ruby和gem当前使用的版本:



第三步:通过gem安装CocoaPods

接下来开始安装CocoaPods.在安装之前,还需要将XCode里的Command line工具安装好.如下图所示:


安装成功后以后回到Shell,输入如下命令:

命令:sudo gem install cocoapods

命令:pod setup


pod setup命令执行后原理是将Spec项目复制到当前用户的.cocoapods\master目录下,以后的查找、安装使用都是基于该本地目录的.

安装成功后,就可以尝试使用了,以后更新新版本的Spec项目只需要再次执行pod setup即可


使用Search命令来看看你需要的第三方库是否存在!

命令:pod search SDWebImage 

到此,CocoaPods的安装就完成了.


第四步,使用CocoaPods

接下来,你需要建立一个主工程.建立成功以后,再次启动终端, 利用cd命令进入到工程文件夹内,此时需要创建一个特殊的文本文件,命令如下:

命令: touch Podfile 创建

命令: open -e Podfile 打开

此时,Mac应该是自动打开记事本. 接下来就开始加入我们要使用的库了.

编制格式可以参考CocoaPods的官方文档

示例:

platform :ios,5.0

pod 'SDWebImage'

上面的代码中:指定了平台最低支持的版本

pod通过Search查到的库 如果没有指定版本号,那么配置出来的版本是最新版.

对这个文本文件保存以后,执行如下命令:

命令:pod install 

在每次执行前请确保终端所处于的文件夹目录已经是当前目录. 否则将安装失败.

另外本次成功安装以后,如果 SDWebImage 的作者更新了它的库并提交到了CocoaPods里面,此时我们也想在项目中使用新版本的SDWebImage. 这个时候需要执行如下命令:

命令:pod update 

pod install命令一样 需要将终端所处于的文件夹目录是当前Podfile文件所在的目录

执行后,CocoaPods首次会创建一个同工程名的工作空间(xcworkspace). 以后就打开这个工作空间来进行接下来的开发工作.

这里也证明了一点,以后新项目启动时,应该先配置和部署CocoaPods.


另外,如果指定了某个开源库的版本号,此时pod update 会忽略版本号, 所以需要使用pod install来安装指定的版本




总结:

CocoaPods的部署与配置还是较为繁琐的,博文流程中记录的每一天都要去执行.不然都有可能产生失败.



可能遇到的问题:

Date:2013-05-13 23:24:47

今天用CocaPods的 pod install 命令时 出现如下错误:

The `master` repo requires CocoaPods 0.18.1

解决办法见此贴.


Date:2014-02-12 17:19:48

今天用CocoaPods的pod update命令时 出现如下错误:


CocoaPods官方团队对于此问题,专门写了一篇文章来解决这个问题.

http://blog.cocoapods.org/Repairing-Our-Broken-Specs-Repository/


Date:2014-03-13 12:33:46

今天用CocoaPods的pod update命令时 出现如下错误:
The `master` repo requires CocoaPods 0.29.0
解决方案:

更新Gem,在终端输入如下命令:

sudo gem update cocoapods
参考:

http://www.cnblogs.com/so-magic/p/3580100.html


Date:2014-04-14 21:47:08

今天在编译真机版本调试时遇到了关于64位架构编译不过去的问题.

参考以下资料解决问题:

http://stackoverflow.com/questions/18881986/integration-error-with-cocoapods-and-xcode5

http://cameronspickert.com/2014/01/20/remove-the-arm64-architecture-from-cocoapods-targets.html



题外话:

关于Spec

简单的说,Spec就是每个包在CocoaPods中的配置文件,其中包括Package的名字,版本号,每个版本对应的下载地址,编译时的参数等等。

这是该项目的地址:https://github.com/CocoaPods/Specs

在页面上有介绍如何创新新的包,可以Fork该项目,然后通过pull request提交所建的新包。

附上一篇详细的教程

http://ishalou.com/blog/2012/10/16/how-to-create-a-cocoapods-spec-file/

关于生成代码文档

详细见我的另外一篇教程:

http://blog.csdn.net/ysy441088327/article/details/7661785






目录
相关文章
|
3月前
|
Perl
如何在项目中使用CocoaPods和Carthage?
如何在项目中使用CocoaPods和Carthage?
21 4
|
2月前
|
iOS开发
CocoaPods-Xcode依赖管理
CocoaPods-Xcode依赖管理
17 0
|
9月前
|
缓存
vujs导入项目与npm install出现的问题处理
vujs导入项目与npm install出现的问题处理
53 0
|
Java 测试技术 Maven
|
网络协议
npm无法下载第三方包
npm无法下载第三方包
npm无法下载第三方包
|
缓存 Ruby Perl
重装Cocoapods遇到的问题
重装Cocoapods遇到的问题
重装Cocoapods遇到的问题
|
Kubernetes JavaScript Docker
离线安装k8s
一、环境信息: 环境信息(采用一个master节点+两个node节点) master 172.16.20.11 node1 172.16.20.12 node2 172.16.20.13 操作系统版本 CentOS Linux release 7.
2968 0
VS2015中使用NuGet离线安装程序包
1、解决方案资源管理器中,右键“引用”,选择“管理NuGet程序包”; 2、点击图中设置按钮; 3、选择程序包源的位置(网络上下载好的nupkg文件位置),把不相关的选项可以勾掉; 4、选择对应下载的程序包,点击右侧安装,注意其依赖项。
3485 0
|
Kubernetes JavaScript Linux
离线安装k8s 1.9.0
说明本文参考 https://segmentfault.com/a/1190000012755243。在前文基础上整理、增加说明,避坑。 踩过的坑: 安装k8s 1.9.0 实践:问题集锦 环境说明 环境信息(采用一个master节点+两个node节点) 192.
2360 0