CocoaPods 是 Swift 和 Objective-C Cocoa 项目的依赖管理器,此快速参考备忘单显示了它的常用命令使用清单。
入门
安装
1 | $ sudo gem install cocoapods |
无 Sudo 安装,不想为此过程授予 RubyGems
管理员权限
1 | export GEM_HOME=$HOME/.gem |
编辑 .bash_profile
配置文件,添加上面内容
1 | $ gem install cocoapods --user-install |
更新 CocoaPods
1 | $ gem install cocoapods |
或者对于预发布版本
1 | $ gem install cocoapods --pre |
安装
1 | $ pod install |
在您的项目中安装新的 pod
,即使你已经有一个 Podfile
并且之前运行过 pod install
; 因此,即使您只是在已经使用 CocoaPods
的项目中添加/删除 pod
- 会在
Podfile.lock
文件中为每个 pod 写入已安装的版本,此文件跟踪每个 pod 的已安装版本并锁定这些版本 - 它只会解析
Podfile.lock
中尚未列出的 pod 的依赖关系 - 对于
Podfile.lock
中列出的 pod,会下载Podfile.lock
中列出的显式版本,而不尝试检查是否有更新的版本可用
下载 Podfile
中定义的所有依赖项,并在 ./Pods
中创建一个 Xcode Pods
库项目
更新过时的依赖
1 | $ pod outdated |
显示当前 Podfile.lock
中过时的 pod
,但仅显示来自规范 repos
的那些,而不是来自本地/外部来源的那些
更新依赖
1 | $ pod update |
更新由指定 pod
名称标识的 Pod
。 如果没有指定 Pod
名称,它会更新所有 Pod
,而忽略 Podfile.lock
的内容。 此命令保留用于更新依赖项,应使用 pod install
安装对 Podfile
的更改
清理 Pods 依赖
1 | $ pod deintegrate |
从 CocoaPods
中分离您的项目。 从您的 Xcode
项目中删除所有 CocoaPods
的痕迹。如果未指定 xcodeproj
,则将在当前目录中搜索 Xcode
项目
pod env
1 | $ pod env |
显示 pod 环境
将 Pod 添加到 Xcode 项目
创建一个 Podfile,并添加您的依赖项
1
2
3
4
5# Podfile
target 'MyApp' do
pod 'AFNetworking', '~> 3.0'
pod 'FBSDKCoreKit', '~> 4.9'
end在您的项目目录中运行
$ pod install
打开
App.xcworkspace
并构建
创建一个新的 Cocoapod
命令 | 说明 |
---|---|
pod lib create pod_name |
为您创建一个新的 pod 项目 |
pod trunk push pod_name.podspec |
将 podspec 推送到 trunk |
pod spec create pod_name |
为您创建 podspec 模板 |
浏览
pod search QUERY
搜索名称、摘要、描述或作者与 QUERY 匹配的 pod,忽略大小写。 如果指定了 –simple 选项,这将只搜索 pod 的名称pod list
列出所有可用的 podpod try NAME|URL
下载具有给定名称(或 Git URL)的 Pod,如果需要,安装其依赖项并打开其演示项目。 如果提供了 Git URL,则使用 repo 的头部。 如果指定了 Git URL,则可以提供 –podspec_name,如果 podspec 名称由于某种原因与 git 存储库不同
规格
pod spec create [NAME\|https://github.com/USER/REPO]
在当前工作目录中创建一个名为 NAME.podspec 的 PodSpec。如果传递了 GitHub url,则预先填充规范。pod spec lint [NAME.podspec|DIRECTORY|http://PATH/NAME.podspec ...]
验证 NAME.podspec。 如果提供了 DIRECTORY,它会验证找到的 podspec 文件,包括子文件夹。 如果省略参数,则默认为当前工作目录。pod spec cat [QUERY]
将名称与 QUERY 匹配的 podspec 的内容打印到标准输出。pod spec which [QUERY]
打印名称与 QUERY 匹配的 .podspec 文件的路径pod spec edit [QUERY]
打开要编辑的与 QUERY 匹配的 podspec。
Repos
命令 | 说明 |
---|---|
pod repo add NAME URL [BRANCH] |
在 ~/.cocoapods/repos/ 的本地 spec-repos 目录中克隆 URL。远程可以稍后由 NAME 引用 |
pod repo update [NAME] |
更新 spec-repo NAME 的本地克隆。如果 NAME 被省略,这将更新 ~/.cocoapods/repos 中的所有 spec-repos |
pod repo lint [NAME|DIRECTORY] |
对 spec-repo NAME 进行 lints。如果提供了目录,则假定它是存储库的根目录。最后,如果没有提供 NAME,这将 lint CocoaPods 已知的所有规范库 |
pod repo list |
从 ~/.cocoapods/repos/ 的本地 spec-repos 目录中列出 repos |
pod repo remove NAME |
从 ~/.cocoapods/repos/ 的本地 spec-repos 目录中删除名为 NAME 的远程 |
pod repo push REPO [NAME.podspec] |
验证当前工作目录中的 NAME.podspec 或 *.podspec,在 REPO 的本地副本 (~/.cocoapods/repos/[REPO] ) 中为 pod 创建目录和版本文件夹,将 podspec 文件复制到版本中目录,最后它将 REPO 推送到其远程 |
pod setup |
在 ~/.cocoapods/repos 创建一个目录,该目录将保存您的规范存储库。它将在这里创建公共主规范仓库的克隆:https://github.com/CocoaPods/Specs 如果克隆已经存在,它将确保它是最新的 |
Trunk
pod trunk add-owner POD OWNER-EMAIL
将具有指定 OWNER-EMAIL 的注册用户添加为给定 POD 的owner
pod trunk info NAME
返回有关 Pod 的信息pod trunk me
包括有关您的注册的信息,然后是您的所有会话pod trunk push [PATH]
在 PATH 发布 podspec 以使其可供master
规范存储库的所有用户使用pod trunk register EMAIL [NAME]
注册一个新帐户,或创建一个新会话pod trunk remove-owner POD OWNER-EMAIL
将具有指定 OWNER-EMAIL 的用户从给定 POD 的 owner 中移除pod trunk deprecate NAME
弃用 podpod trunk delete NAME VERSION
警告:删除其他人所依赖的 Pod 版本通常被认为是不良行为!请考虑改用 命令deprecate
什么是 Podfile?
简单配置
1 | target 'MyApp' do |
Podfile 可以非常简单,这会将 Alamofire 添加到单个目标
添加测试
1 | source 'https://github.com/CocoaPods/Specs.git' |
链接应用程序及其测试包的更复杂 Podfile 的示例
指定 pod 版本
在开始一个项目时,希望使用最新版本的 Pod。这种情况,只需忽略版本要求
1 | pod 'SSZipArchive' |
稍后在项目中,您可能希望冻结到特定版本的 Pod,在这种情况下,您可以指定该版本号
1 | pod 'Objection', '0.9' |
隐式抽象目标
Podfile 的根目录存在隐式抽象目标,因此您可以将上面的示例编写为
1 | pod 'ShowsKit' |
多个目标共享同一个 pod
1 | # 在任何 Xcode 项目中都没有名为“Shows”的目标 |
另见
- CocoaPods 官方网站 (cocoapods.org)
- Cocoapods Cheatsheet (github.com)