您的位置:首页 > 移动开发 > IOS开发

关于依赖管理工具CocoaPods的使用

2016-10-20 00:00 459 查看
一、什么是CocoaPods
CocoaPods是iOS项目的依赖管理工具,该项目源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和第三方开源库的时间。

二、为什么使用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的安装

打开终端,然后键入以下命令:
sudo gem install cocoapods
执行完这句如果报告以下错误:
ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ETIMEDOUT: Operation timed out - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
ERROR: Possible alternatives: cocoa pods

这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
gem sources -l (查看当前ruby的源)
gem sources --remove https://rubygems.org/
gem sources -a https://ruby.taobao.org/
gem sources -l

如果gem太老,可以尝试用如下命令升级gem
sudo gem update --system
升级成功后会提示: RubyGems system software updated

然后重新执行安装下载命令
sudo gem install cocoapods

这时候应该没什么问题了,接下来进行安装,执行:
pod setup
终端会停留在 Setting up CocoaPods master repo 这个状态一段时间,是因为要进行下载安装,而且目录比较大,需要耐心等待一下.如果想加快速度,可使用cocoapods的镜像索引.

安装成功后,你会看到:
Setup completed
这个表示CocoaPods安装完成,你可以在终端键入pod search AFNetworking看看能不能搜出东西来,要是能的话,表示你的CocoaPods已经可以正常使用了,接下来就是具体的使用了。

五、Cocoapods的使用
新建一个名为PodTest的iOS工程,然后在终端键入

cd /Users/lucky/Desktop/PodTest

接着上一步,终端输入 vim Podfile

键盘输入 i,进入编辑模式,输入
platform :ios,'8.0'

target :'PodTest' do

pod 'AFNetworking','~>3.1.0'

pod 'JSONKit', '~> 1.5pre'

pod 'SVProgressHUD', '~> 2.0.3'

pod 'BDKNotifyHUD', '~> 1.1.0'

pod 'HyphenateFullSDK', '~> 3.1.4'

end
编辑完成后,按Esc,并且输入" : "号进入vim命令模式,然后在冒号后边输入wq

激动人心的时刻到了:确定终端cd到项目总目录,然后输入 pod install,等待一会,就可以安装成功了

注意:现在打开项目不是点击 PodTest.xodeproj了,而是点击 PodTest.xcworkspace

六、关于安装不成功的可以参考以下链接

http://www.jianshu.com/p/6e5c0f78200a

http://blog.csdn.net/zhaoyya/article/details/50803318
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CocoaPods iOS