使用CocoaPods来做iOS程序的包依赖管理

每种语言发展到一个阶段,就会出现相应的依赖管理工具, 或者是中央代码仓库。比如

  • Java: maven,Ivy
  • Ruby: gems
  • Python: pip, easy_install
  • Nodejs: npm

随着iOS开发者的增多,业界也出现了为iOS程序提供依赖管理的工具,这个工具叫:CocoaPods

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

在使用CocoaPods之后,我只需要将用到的第三方开源库放到一个名为Podfile的文件中,然后执行pod install。CocoaPods就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。

podfile文件是在安装了CocoaPods工具之后,用pod init命令生成的文件,可以在该文件中添加所使用的第三方库。

CocoaPods的安装和使用介绍

安装

安装方式异常简单, Mac下都自带ruby,使用ruby的gem命令即可下载安装:

bash命令行中输入:$ sudo gem install cocoapods

    $ pod setup

上面第二行执行时,会输出Setting up CocoaPods master repo,但是会等待比较久的时间。这步其实是Cocoapods在将它的信息下载到 ~/.cocoapods目录下,如果你等太久,可以试着cd到那个目录,用du -sh *来查看下载进度。

如果你的gem太老,可能也会有问题,可以尝试用如下命令升级gem:

                  sudo gem update --system

另外,ruby的软件源rubygems.org因为使用的亚马逊的云服务,所以被屏蔽了,需要更新一下ruby的源:

gem sources --remove https://rubygems.org/

gem sources -a http://ruby.taobao.org/

gem sources -l

使用

使用时需要新建一个名为Podfile(使用bash打开工程中的podfile,可使用vim进行编辑)的文件,以如下格式,将依赖的库名字依次列在文件中即可例如:

platform :iOS

pod'JSONKit','~> 1.4'

pod'Reachability','~> 3.0.0'

pod'ASIHTTPRequest'

pod'RegexKitLite'

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

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

    查找第三方库

    你如果不知道cocoaPods管理的库中,是否有你想要的库,那么你可以通过pod search命令进行查找,以下是我用pod search json查找到的所有可用的库:















    关于.gitignore

    1. 当你执行pod install之后,除了Podfile外,cocoapods还会生成一个名为Podfile.lock的文件,你不应该把这个文件加入到.gitignore中。因为Podfile.lock会锁定当前各依赖库的版本,之后如果多次执行pod install 不会更改版本,要pod update才会改Podfile.lock了。这样多人协作的时候,可以防止第三方库升级把程序搞挂。

  • 生成第三方库的帮助文档

    如果你想让CococaPods帮你生成第三方库的帮助文档,并集成到XCode中,那么用brew安装appledoc即可:

    1
    
    brew install appledoc
    

    关于appledoc,我在今年初的另一篇博客《使用Objective-C的文档生成工具:appledoc》中有专门介绍。它最大的优点是可以将帮助文档集成到XCode中,这样你在敲代码的时候,按住opt键单击类名或方法名,就可以显示出相应的帮助文档。

    原理:

    大概研究了一下CocoaPods的原理,它是将所有的依赖库都放到另一个名为Pods项目中,然后让主项目依赖Pods项目,这样,源码管理工作都从主项目移到了Pods项目中。发现的一些技术细节有:

    1. Pods项目最终会编译成一个名为libPods.a的文件,主项目只需要依赖这个.a文件即可。
    2. 对于资源文件,CocoaPods提供了一个名为Pods-resources.sh的bash脚本,该脚本在每次项目编译的时候都会执行,将第三方库的各种资源文件复制到目标目录中。
    3. CocoaPods通过一个名为Pods.xcconfig的文件来在编译时设置所有的依赖和参数。
    4. 补充:

      1) 查找第三方库

      pod search json

      该命令可以搜索第三方库的完整名称,也可以输入相关关键字,例如pod search json

      2) 更新第三方库的引用

      打开Podfile配置文件,添加或删除配置文件中的第三方库引用,保存退出之后,运行:

      pod update

      或者

      pod install

      可以更新项目对第三方库的引用。

      有关CocoaPods使用的进一步信息,可以访问官方网站:http://docs.cocoapods.org/guides/getting_started.html

      5. 常用gem命令

      5.1 添加gem的源(为啥添加你懂得,在此感谢下老马)

      gem sources -a http://ruby.taobao.org/

      5.2 查看gem源

      gem sources –l

      5.3 gem自身升级

      sudo gem update –system

      5.4 查看当前版本

      gem –version

      5.5 清除过期的gem

      gem cleanup

      5.6 安装包

      gem install ruby

      5.7 卸载包

      gem uninstall ruby

      5.8 更新本地安装的包

      gem update

      5.9 列出本地安装的包

      gem list 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值