CocoaPods 简介
每种语言发展到一个阶段,就会出现相应的依赖管理工具,例如 Java 语言的 Maven,nodejs 的 npm。随着 iOS 开发者的增多,业界也出现了为 iOS 程序提供依赖管理的工具,它的名字叫做:CocoaPods。
CocoaPods项目的源码 在 Github 上管理。该项目开始于 2011 年 8 月 12 日,经过多年发展,现在已经成为 iOS 开发事实上的依赖管理标准工具。开发 iOS 项目不可避免地要使用第三方开源库,CocoaPods 的出现使得我们可以节省设置和更新第三方开源库的时间。
我在开发猿题库客户端时,使用了 24 个第三方开源库。在没有使用 CocoaPods 以前,我需要:
把这些第三方开源库的源代码文件复制到项目中,或者设置成 git 的 submodule。
对于这些开源库通常需要依赖系统的一些 framework,我需要手工地将这些 framework 分别增加到项目依赖中,比如通常情况下,一个网络库就需要增加以下 framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics, zlib。
对于某些开源库,我还需要设置-licucore或者 -fno-objc-arc等编译参数
管理这些依赖包的更新。
这些体力活虽然简单,但毫无技术含量并且浪费时间。在使用 CocoaPods 之后,我只需要将用到的第三方开源库放到一个名为 Podfile 的文件中,然后执行pod install。
CocoaPods 就会自动将这些第三方开源库的源码下载下来,并且为我的工程设置好相应的系统依赖和编译参数。
CocoaPods 的安装和使用介绍
安装方式异常简单 , Mac 下都自带 ruby,使用 ruby 的 gem 命令即可下载安装:
$ sudo gem install cocoa pods
To proceed, enter your password, or type Ctrl-C to abort.
Password:输入你的电脑开机密码
我输入密码报了这个错:ERROR: Could not find a valid gem 'cocoapods' (>= 0), here is why:Unable to download data from https://rubygems.org/ - Errno::ECONNRESET: Connection reset by peer - connect(2) (https://rubygems.org/latest_specs.4.8.gz)
找到了这个解决办法:
$ gem sources --remove https://rubygems.org/
https://rubygems.org/ removed from sources
$ gem sources -a https://ruby.taobao.org/
https://ruby.taobao.org/ added to sources
$ gem sources -l
*** CURRENT SOURCES ***
https://ruby.taobao.org/
如果你的 gem 太老,可能也会有问题,可以尝试用如下命令升级 gem:
我更新$ sudo gem update --system
继续$ sudo gem install cocoapods又报错:
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fuzzy_match
解决:$ mkdir -p
$ HOME/Software/ruby
$ gem install cocoapods -n ~/Software/ruby 好了
继续 $ pod setup
http://blog.devtang.com/2014/05/25/use-cocoapod-to-manage-ios-lib-dependency/#jtss-douban