首页 > 代码库 > cocoapods管理以及常遇到的问题

cocoapods管理以及常遇到的问题

CocoaPods使用

安装成功啦,咱们来创建Podfile文件

//咱们先滚去项目的根目录,如果不会,你就先滚去看看shell命令教程吧
$ cd /Users/JamesGu/Desktop/CocoaPodsProject
//创建Podfile文件
$ touch Podfile

这样子你的项目目录里就多了一个Podfile文件(没有后缀哦)

编辑一下Podfile文件,来点直接的(当然是在项目目录)

//打开Podfile文件
$ open Podfile

加入

platform :ios, ‘7.0‘  

pod "AFNetworking", "~> 2.6.1"
pod "MBProgressHUD", "~> 0.9.1"

上边第一句意思是我要用ios的类库,还要是支持7.0以上的,然后我要用AFNetworking的2.6.1版本和MBProgressHUD的0.9.1版本,还要加类库?继续往后添即可,在这里可以不加版本(eg:pod "MBProgressHUD" ),在没有Podfile.lock文件约束的情况下(后边会讲到),当然就会默认下载当前最新类库的给你。

保存保存保存保存保存保存保存保存保存保存

开始要导入三方库了(去项目根目录,这一步很慢很慢的,请原谅中国的特殊网络)

$ pod install

开始CocoaPods就开始根据Podfile文件为我们下载代码库,配置依赖,添加代码库用到的framework
终端是这么显示的

Analyzing dependencies
Downloading dependencies
Installing AFNetworking (2.6.1)
Installing MBProgressHUD (0.9.1)

[!] From now on use `CocoaPodsProject.xcworkspace`.

最后一句英文认识吗?

是哒,以后你就要用xcworkspace文件来打开项目了,CocoaPods会帮你把你原本的项目和一个CocoaPods项目组成一个工作空间,编译时候,CocoaPods项目会预先被编译,生成一个.a的静态类库文件,供你的主项目调用,而这一切CocoaPods已经帮你做好了,你只需要打开xcworkspace写你的代码而已。

技术分享
完整过程
![Uploading 87B5BBF9-7FC6-4BD7-859B-79B988BD37BD_449931.png . . .]

补张图给大家

技术分享
装完之后的项目结构

如果你仔细看过上边的应该就对CocoaPodsProject.xcworkspace和Podfile这两个文件的作用很清楚了

第四节:含有CocoaPods的项目的管理

接下来就要讲到Podfile.lock文件和Pods文件夹了。
Podfile.lock :这个文件是用来保存已经安装的Pods依赖库的版本。
Pods文件夹:不用说,这里边全是引用的三方类库。

接上上边说,如果Podfile.lock文件丢失,你再使用pod install命令,并且Podfile中含有没有指定版本的类库,那你的类库就会下载最新的版本,有些比较活跃的三方项目更新很频繁,它们一旦更新方法名或者实现方式,你调用的代码就报错了,这是灾难性的。

看过其他教程的人一定会奇怪,很多教程中用的是pod update 命令,为什么你一直在提pod install,因为pod update会更新的你Podfile.lock文件到最新版本,接下来的害处就如上段所说。

所以千万记住,无论是自己的项目,还是跑别人的源码,一定要用pod install,至于pod update,看你自己是不是要三方升级类库(我还是建议最好在Podfile中指定版本,想要升级,只需更改Podfile中的版本号,再pod install)。

曾经有一份别人的源码摆在我的面前,只有一个Podfile文件,没有Podfile.lock,还在说明里告诉大家用pod update,当时我傻傻的以为是我的问题,愣是没跑起来。

技术分享
 

所以CocoaPods管理的项目,生成的四个文件,只用上传Podfile和Podfile.lock,其他的不要上传,毕竟每pod install一遍,如果有改动,svn就会有一大堆的提交,这种情况是谁都不想看到的,所以呢版本控制只留这两个文件就好。

cocoapods管理以及常遇到的问题