一、什么是CocoaPods
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。
在使用CocoaPods之前,开发项目需要用到第三方开源库的时候,我们需要
1.把开源库的源代码复制到项目中
2.添加一些依赖框架和动态库
3.设置-ObjC,-fno-objc-arc等参数
4.管理他们的更新
在使用CocoaPods后,我们只需要把用到的开源库放到一个名为Podfile的文件中,然后执行pod install.Cocoapods就会自动将这些第三方开源库的源码下载下来,并且为我们的工程设置好响应的系统依赖和编译参数。
二、CocoaPods的原理
CocoaPods的原理是将所有的依赖库都放到另一个名为Pods的项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可
三、CocoaPods的安装(正题)
作为一名ios初学者,被这个cocoapods整的头都快炸了,希望通过我的分享能帮助到大家,如有错误还请指正。
使用Mac下自带的ruby的gem命令即可下载安装,但由于要安装的软件源rubygems.org使用亚马逊的云服务,被屏蔽,需要先更换ruby的源,再进行安装CocoaPods(以下命令需要在Mac的Terminal终端下进行,如果在执行命令的过程中需要中途取消,可以使用control+c结束)
1.更换源
gem sources --remove https://rubygems.org/ (删除原有的源)
gem sources -a https://ruby.taobao.org/ (添加新的源 )
gem sources -l (查看当前的源)如图1所示:
2.更新升级gem
sudo gem update --system (温馨提示:在输入密码的时候,是没有位数显示的,不要以为没输入上去,输完回车,稍等片刻。弹出如图2界面)
通过以下指令可以查看是否安装好了运行环境
ruby --version
gem --version
3.安装CocoaPods
sudo gem install cocoapods
sudo gem install -n /usr/local/bin cocoapods(备选1)
sudo gem install -n /usr/local/bin cocoapods --pre (备选2)(目前安装完会提示1.0.0版本的cocoapods已经安装完成)
4.初始化第三方库信息
方案一:直接初始化
pod setup
在执行setup时,会输出Setting up CocoaPods master repo的提示,然后需要等待很长时间,因为此时CocoaPods在将它的信息下载到~/.cocoapods目录下,为了便于查看是否真的在下载,及当前下载的速度,可以使用如下命令切换到该目录,查看下载进度
cd ~/.cocoapods 回车
du -sh * 回车
方案二:更换索引镜像后再初始化
pod repo remove master
pod repo add master https://gitcafe.com/akuandev/Specs.git
pod setup
补充操作:安装过第三方库索引以后,更新为最新版索引
pod repo update
方案三(推荐):
pod setup 可能出现失败的情况,可以打开下面链接(http://www.cocoachina.com/bbs/read.php?tid=193398),直接下载附件:pod setup失败的解决方案.zip,然后解压master.zip,将master文件夹拖到/Users/用户名/.cocoapods/repos目录下即可。
使用CocoaPods时遇到pod setup失败的解决办法
四、CocoaPods插件的安装(正题)
打开 https://github.com/kattrali/cocoapods-xcode-plugin 下载cocoapods插件cocoapods-xcode-plugin
打开 CocoaPods.xcworkspace文件 直接运行,弹出一个对话框,点击 Load Bundle ,重新运行即可,此时打开xcode导航栏Product 会有CocoaPods选项 ,就能正常使用了。关于cocoapods使用的说明请参考:
http://blog.csdn.net/showhilllee/article/details/38398119/
引用原文链接:http://www.jianshu.com/p/6e5c0f78200a