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

2016-10-21 10:31:11来源:oschina作者:han笑笑人点击

第七城市


一、什么是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 /2014th7cj/d/file/p/20161021/sz2ek0kozze - Errno::ETIMEDOUT: Operation timed out - connect(2) (/2014th7cj/d/file/p/20161021/sz2ek0kozzelatest_specs.4.8.gz)
ERROR: Possible alternatives: cocoa pods
这是因为ruby的软件源rubygems.org因为使用亚马逊的云服务,被我天朝屏蔽了,需要更新一下ruby的源,过程如下:
gem sources -l (查看当前ruby的源)
gem sources --remove /2014th7cj/d/file/p/20161021/sz2ek0kozze
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' dopod '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
第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台