使用未发布的功能

<使用未发布的功能

有时,您可能希望在 CocoaPods 中测试即将推出的功能。此时,此类功能的代码可能已在“功能分支”中提供。本文档基于现有的 Pull Request,它会随着时间的推移而改变/更新,因此它可能会略微过时。

<两个选项

使用 Gemfile

本指南中未介绍此内容,但在 使用 Gemfile 中介绍了此内容。这是一种更简单的技术,但要求您在运行任何 pod 命令之前记住使用 bundle exec

设置 CocoaPods 的本地开发副本

运行 CocoaPods 分支版本的技术是

  • 如果尚未安装,请安装 Bundler(可在 bundler.io 中找到安装说明)
  • 在本地克隆 CocoaPods 的副本。
  • 检出您想要的分支的版本。
  • 运行 bundle install 以设置 CocoaPods。
  • 使用新 pod 二进制文件的完整路径,而不是通过 rubygems 安装的路径。

然后,当您想要更新时,返回到该本地安装并运行 git pull,然后再次运行 bundle install

<现实世界演练

我们使用 @mrackwitz's Swift Pull Request CocoaPods#2835 作为示例。请注意,swift 分支不再存在。您可以在 此处 查看所有当前分支。

克隆本地副本

通过查看子标题 mrackwitz wants to merge 85 commits into master from swift,您可以推断出此 pull request 来自 CocoaPods 仓库中的一个分支。如果它看起来像 Pull Request CocoaPods#2880[...] CocoaPods:master from samdmarshall:xclegacy-build-setting-build-dir-fix),那么您可以看到它来自 samdmarshall 分支,您需要从该仓库中克隆。

克隆本地副本

cd projects/cocoapods/
git clone https://github.com/CocoaPods/CocoaPods.git

检出该分支,并运行 bundle install

对于我们的 pull request 来说,这很容易,我们首先需要在新的文件夹中 cd

cd CocoaPods
git checkout swift
bundle install

使用新版本作为您的pod命令

新的pod命令位于您刚刚克隆的 git 存储库中。它可以在bin文件夹中找到。

要获取 CocoaPods 命令的完整路径,请运行

echo $(pwd)"/bin/pod"
# e.g. /Users/orta/spiel/ruby/CocoaPods/bin/pod

这是您可以用来运行 CocoaPods 分支版本的命令

cd ~/projects/dev/eidolon
/Users/orta/spiel/ruby/CocoaPods/bin/pod install

命令别名

终端支持使用别名来减少命令的长度。默认终端 shell 称为 bash,如果您想了解如何设置 bash 别名,我建议阅读此 StackOverflow。您可以创建一个使用此文件夹的别名,如spod

alias spod='/Users/orta/spiel/ruby/CocoaPods/bin/pod'

这意味着您可以运行 spod install 来使用您自定义的 CocoaPods 版本。

其他选项

另一个选项是使用Bundler(用于 ruby 项目的 CocoaPods)来维护您自己的 fork/分支,如果您在一个团队中并且希望确保开发人员之间的一致性,这是一个更好的选择。请参阅CocoaPods 已准备好用于 Swift,了解如何执行此操作的示例。