CocoaPods初学

什么是CocoaPods

每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。

当你开发iOS应用时,会经常使用到很多第三方开源类库,比如JSONKit,AFNetWorking等等。可能某个类库又用到其他类库,所以要使用它,必须得另外下载其他类库,而其他类库又用到其他类库,“子子孙孙无穷尽也”,这也许是比较特殊的情况。另外一种常见情况是,你项目中用到的类库有更新,你必须得重新下载新版本,重新加入到项目中,十分麻烦。如果能有什么工具能解决这些恼人的问题,那将“善莫大焉”。所以,你需要 CocoaPods。

CocoaPods应该是iOS最常用最有名的类库管理工具了,上述两个烦人的问题,通过cocoaPods,只需要一行命令就可以完全解决,当然前提是你必须正确设置它。重要的是,绝大部分有名的开源类库都支持CocoaPods。

安装CocoaPods

安装RVM

CocoaPods是一个Ruby写的gem,建议使用RVM(Ruby Version Manager)来管理Ruby相关的包,先来安装RVM。


$ curl -sSL https://get.rvm.io | bash -s stable --ruby
$ source /Users/ZhangZhengzhen/.rvm/scripts/rvm

安装bundler

然后安装bundler,bundler是一个管理gem的东西。ruby 的软件源 https://rubygems.org 因为使用的是亚马逊的云服务,所以被墙了,需要更新一下 ruby 的源,使用如下代码将官方的 ruby 源替换成国内淘宝的源:


$ gem sources --remove https://rubygems.org/
$ gem sources -a https://ruby.taobao.org/
$ gem sources -l

$ gem install bundler

安装CocoaPods

如果你接管的项目中已经包含了Gemfile配置文件,可以直接运行:


$ bundle install

Gemfile配置文件中的内容如下:


source 'https://ruby.taobao.org/' do
  gem 'cocoapods', '~> 0.39.0'
  gem 'fastlane', '~> 1.48.0'
end

这条命令会安装Gemfile里面指定的gem,在这里会安装cocoapodsfastlane

如果直接安装CocoaPods可以运行下面命令:


$ gem install cocoapods

Gemfile.lock文件是Bundler记录已经安装了的版本的地方。通过这样的方式,当相同库/项目在另外一台机器上部署的时候,运行bundle install将会查看Gemfile.lock,然后安装同样的版本,而不是使用Gemfile以及安装最新的版本。下面将提到Podfile.lock,两者意思一样。

上面提到Ruby相关的各种概念

  • RVM: 用于帮你安装Ruby环境,帮你管理多个Ruby环境,帮你管理你开发的每个Ruby应用使用机器上哪个Ruby环境。Ruby环境不仅仅是Ruby本身,还包括依赖的第三方Ruby插件。都由RVM管理。
  • Gem: 封装起来的Ruby应用程序或代码库。
  • Bundle: 相当于多个RubyGems批处理运行。在配置文件gemfile里说明你的应用依赖哪些第三方包,他自动帮你下载安装多个包,并且会下载这些包依赖的包。
  • Gemfile: 用于定义你的应用依赖哪些第三方包,bundle根据该配置去寻找这些包。
  • RubyGems: 是一个方便而强大的Ruby程序包管理器( package manager),类似RedHat的RPM.它将一个Ruby应用程序打包到一个gem里,作为一个安装单元。无需安装,最新的Ruby版本已经包含RubyGems了。

使用CocoaPods

关于Podfile文件

用CocoaPods我们打交道最多的就是Podfile文件。CocoaPods是用ruby实现的,因此Podfile文件的语法就是ruby的语法。

  • 通常情况下我们都推荐Podfile文件都放在工程根目录。
  • 事实上Podfile文件可以放在任意一个目录下,需要做的是在Podfile中指定工程的路径。

新建一个名为 Podfile 的文件,写入一下内容:


platform :ios
pod 'ASIHTTPRequest'
pod 'RegexKitLite'

将编辑好的 Podfile 文件放到你的项目根目录中,执行如下命令即可:


$ cd "your project home"
$ pod install

现在,你的所有第三方库都已经下载完成并且设置好了编译参数和依赖,你只需要记住如下 2 点即可:

  1. 使用CocoaPods生成的.xcworkspace文件来打开工程,而不是以前的.xcodeproj文件。
  2. 每次更改了Podfile文件,你需要重新执行一次pod update命令。

关于 Podfile.lock

执行完pod install之后,会生成一个Podfile.lock文件。这个文件看起来跟我们关系不大,实际上绝对不应该忽略它。Podfile.lock文件最大得用处在于多人开发。对于没有在Podfile中指定Pods依赖库版本的写法,如下:


pod 'SBJson'

该句话用于获取当前SBJson这个Pods依赖库的最新版本。

当团队中的某个人执行完pod install命令后,生成的Podfile.lock文件就记录下了当时最新Pods依赖库的版本,这时团队中的其它人check下来这份包含Podfile.lock文件的工程以后,再去执行pod install命令时,获取下来的Pods依赖库的版本就和最开始用户获取到的版本一致。如果没有Podfile.lock文件,后续所有用户执行pod install命令都会获取最新版本的SBJson,这就有可能造成同一个团队使用的依赖库版本不一致,这对团队协作来说绝对是个灾难!

在这种情况下,如果团队想使用当前最新版本的SBJson依赖库,有两种方案:

  1. 更改Podfile,使其指向最新版本的SBJson依赖库;
  2. 执行pod update命令;

鉴于Podfile.lock文件对团队协作如此重要,我们需要将它添加到版本管理中。

参考链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值