MarkDown还是用不溜,改天学习学习整理一下,再来一篇,暂时先将就着看。第一节:CocoaPods简介(这一节纯粹是粘来的)
1、为什么需要CocoaPods 下载开源库的源代码并引入工程 自从有了CocoaPods以后,这些繁杂的工作就不再需要我们亲力亲为了,只需要我们做好少量的配置工作,CocoaPods会为我们做好一切! 2、什么是CocoaPods 第二节:CocoaPods安装(算了算了,这一节也粘过来吧,注意有改动,并且都是需要在终端里运行的shell命令哦)
1、安装(这一节仔细看完再装)
CocoaPods是以Ruby gem包的形式被安装的。在安装执行的过程中,可能会问我们是不是更新rake,输入y即可。这是因为rake gem包会在安装的过程中检查更细,如果有可用的新版本就会出现刚才的选项。
如果没有报错,就说明一切安装就成功了! 2、安装过程中可能遇到的问题
要想验证是否替换成功了,可以执行:
正常的输出是:
再来重新安装一遍
②gem版本过老(没报错可跳过) gem是管理Ruby库和程序的标准包,如果它的版本过低也可能导致安装失败,解决方案自然是升级gem,执行下述命令即可:
③安装完成后,执行pod setup命令时报错:(没报错可跳过)
这就是路径设置的问题,可以通过执行:
3、升级CocoaPods
需要注意的是,如果安装的时候使用了sudo,升级的时候一样需要使用该关键字,不然升级完了以后又会出现路径不匹配问题。 第三节:CocoaPods使用(这个还是我自己写吧,再粘过来就要被人打死了)安装成功啦,咱们来创建Podfile文件
这样子你的项目目录里就多了一个Podfile文件(没有后缀哦) 编辑一下Podfile文件,来点直接的(当然是在项目目录)
加入
上边第一句意思是我要用ios的类库,还要是支持7.0以上的,然后我要用AFNetworking的2.6.1版本和MBProgressHUD的0.9.1版本,还要加类库?继续往后添即可,在这里可以不加版本(eg:pod "MBProgressHUD" ),在没有Podfile.lock文件约束的情况下(后边会讲到),当然就会默认下载当前最新类库的给你。 保存保存保存保存保存保存保存保存保存保存 开始要导入三方库了(去项目根目录,这一步很慢很慢的,请原谅中国的特殊网络)
开始CocoaPods就开始根据Podfile文件为我们下载代码库,配置依赖,添加代码库用到的framework
最后一句英文认识吗? 是哒,以后你就要用xcworkspace文件来打开项目了,CocoaPods会帮你把你原本的项目和一个CocoaPods项目组成一个工作空间,编译时候,CocoaPods项目会预先被编译,生成一个.a的静态类库文件,供你的主项目调用,而这一切CocoaPods已经帮你做好了,你只需要打开xcworkspace写你的代码而已。 完整过程
![Uploading 87B5BBF9-7FC6-4BD7-859B-79B988BD37BD_449931.png . . .] 补张图给大家装完之后的项目结构
如果你仔细看过上边的应该就对CocoaPodsProject.xcworkspace和Podfile这两个文件的作用很清楚了 第四节:含有CocoaPods的项目的管理接下来就要讲到Podfile.lock文件和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,当时我傻傻的以为是我的问题,愣是没跑起来。 我自己svn上的项目
所以CocoaPods管理的项目,生成的四个文件,只用上传Podfile和Podfile.lock,其他的不要上传,毕竟每pod install一遍,如果有改动,svn就会有一大堆的提交,这种情况是谁都不想看到的,所以呢版本控制只留这两个文件就好。 完!!! |
|
来自: 叹落花 > 《Cocoapods》