CocoaPods 可以为 iOS 项目使用的第三方类库和我们自己的私有类库提供依赖管理,我们只需要告诉它要使用的类库名称和版本号,然后再执行一条命令,它就会自动将这个类库的源码下载到本地,并且为工程设置好相应的系统依赖和编译项。

准备工作

由于 CocoaPods 是用 ruby 写的,所以需要有 ruby 环境和 git 环境,尽量使用 rvm 来管理 ruby,可避免因权限导致的 gem install 失败问题。

sudo gem update –system

为了提高下载速度,还需要将 ruby 源更改为国内地址

gem sources -a https://gems.ruby-china.com/ -r https://rubygems.org/
gem sources -l

安装并使用 CocoaPods

安装 CocoaPods

sudo gem install cocoapods (更新也用这个)

下载 CocoaPods 维护的所有 podspec 文件到"~/.cocoapods/repos/master/Specs”,podspec 文件主要用来描述依赖库的名称、版本、作者、下载地址等信息。通过 CocoaPods 下载第三方类库,其实就是根据我们指定的类库名称找到相关的 podspec,然后再根据 podspec 文件中指定的地址去下载。

pod setup

查看 CocoaPods 管理的依赖库信息

pod search 依赖库的名字

新建 Podfile 文件,此文件用于配置项目所需要使用的依赖库

cd "项目根目录"
pod init

打开 Podfile 文件,按下面内容配置依赖关系,Podfile 的更详细配置方法可参照官方文档

source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '7.0'
inhibit_all_warnings!

target 'xxx' do
  pod 'AFNetworking', '2.5.1' 
end

上面内容的意思是,specs 文件由 CocoaPods 提供,项目需要使用支持 ios7.0 及以上的依赖库,并且为指定 target 配置了 2.5.1 版本的 AFNetworking,并忽略依赖库中的所有警告。依赖库的版本号建议明确指定,这样可以避免更新依赖库后对现有工程造成影响,而且可以保证团队所有开发人员使用的版本一致。

根据 Podfile 文件内容下载安装依赖库

pod install

执行完成后 CocoaPods 会自动为项目工程设置好相应的系统依赖和编译参数,当依赖库安装完成后,打开项目根目录,会发现多了以下文件及文件夹

  • “.xcworkspace”,以后必须通过此 workspace 打开项目。
  • “Pods”,CocoaPods 将 Profile 中配置的所有依赖库都下载到这里,并且将所有依赖库打包成单独的静态库供主项目使用。
  • “Podfile.lock”,用于保存已经安装的依赖库版本信息。如果在配置依赖库时没有明确指定版本,那么必须将此文件加入到版本控制中,否则有可能造成团队开发中不同成员使用的依赖库版本不一致。

查看所下载的依赖库是否有新版本

pod outdated

更新本地 podspec 仓库并更新依赖库

pod update

更新依赖库且不更新本地 podspec 仓库(速度会快很多)

pod update --no-repo-update

将 CocoaPods 从项目中移除,并还原其对 Xcode 的配置修改(1.0 版本开始支持,以前需要用第三方提供的方式)

pod deintegrate

让自己的开源项目支持 CocoaPods

通过 CocoaPods 创建项目会让整个事情变的简单一些

pod lib create FMDBHelper

创建完成后项目根目录会包含以下文件及文件夹

  • “.travis.yml”,通过 travis-ci 做持续集成要用到的配置文件,一般情况下使用默认配置就可以,如果需要使用持续集成服务,还需要以 GitHub 帐号登录 travis-ci,并打开对应项目开关。
  • “.gitignore”,建议将 Pods 目录也加入到忽略范围
  • “LICENSE”,默认为 MIT
  • “FMDBHelper.podspec”,通过 Cocoapods 下载项目时要用到的项目配置文件。
  • “README.md”,通过 markdown 语法编写此文件,用于在 GitHub 上显示项目介绍。
  • “Pod”,将自己的开源代码和资源文件放到这里
  • “Example”,demo 工程,包含测试用的 target。

在 demo 工程中开发并测试

  • 将源代码和资源文件分别放到 Pod/Classes 和 Pod/Assets 目录下
  • 用 pod install 命令为 demo 工程安装依赖库,以后只要新增依赖库的代码或资源文件都需要更新
  • 开发测试完成后还需要修改 podspec 文件

在将 podspec 发布到 CocoaPods 的 Git 库之前首先向 CocoaPods 注册你的信息,需要输入邮箱(与 podspec 中写的一致)和名字,稍后还需要验证 email

pod trunk register bj_lijingcheng@163.com "lijingcheng"

登录 GitHub,release 一版项目并打上标签,标签要与 podspec 中定义的一致,检查并发布 spec 文件,以后需要升级版本时也是用这个命令

pod trunk push FMDBHelper.podspec

更新本地 spec

pod repo update

通过 CocoaPods 维护私有库

可以按官方指导来做,大致步骤与在 GitHub 上维护开源项目相似,区别如下:

  • 需要通过 Git 建立自己的 spec 仓库,并在 Podfile 文件中填加 source

  • 通过 pod repo 来查看现有的 spec 仓库

  • 通过 pod repo add repo_name source_url 在 ~/.cocoapods/repos/ 目录下新建自己的 spec 仓库

  • 通过 pod repo push –allow-warnings repo_name spec_name.podspec 命令将已经写好的 podspec 文件填加到 spec 仓库中

  • 私有库新增版本后需要打 tag 并修改 podspec 文件中的 version,然后再次更新 spec 仓库

  • 在 Podfile 中可直接通过 pod repo_name 安装私有库