<Using Unreleased Features
There may be times when you may want to test an upcoming feature in CocoaPods. At times code for such features may be already available in a 'feature branch'. This document is based on an existing Pull Request which can/will change with time, as such it may be out of date slightly.
<Two Options
Use a Gemfile
This isn't covered in this guide, but instead in Using a Gemfile. This is a simpler technique, but requires you to remember to use bundle exec before running any pod command.
Set up a local dev copy of CocoaPods
The technique to run a branch version of CocoaPods is:
- Install
Bundlerif not already installed (installation instructions can be found at bundler.io) - Clone a copy of CocoaPods locally.
- Check out the version to the branch you want.
- Run
bundle installto get CocoaPods set up. - Use the full path to the new
podbinary, instead of the one installed via rubygems.
Then when you want to update you go back to that local install and run git pull, then bundle install again.
<Real world walk-through
Let's use @mrackwitz's Swift Pull Request CocoaPods#2835 as a example. Note, the swift branch does not exist anymore. You can see all the current branches here.
Clone a local copy
By looking at the subheading mrackwitz wants to merge 85 commits into master from swift you can infer that this pull request comes from a branch on the CocoaPods repo. If it looked like Pull Request CocoaPods#2880 ([...] CocoaPods:master from samdmarshall:xclegacy-build-setting-build-dir-fix) then you could see that it comes from the samdmarshall fork and you would need to clone from that repo.
Cloning a local copy
cd projects/cocoapods/
git clone https://github.com/CocoaPods/CocoaPods.git
Check out the branch, and run bundle install
This is easy for our pull request, we first need to
cdin to the new folder :
cd CocoaPods
git checkout swift
bundle install
Using the new version as your pod command
The new pod command lives in the git repo you have just cloned. It can be found in the bin folder.
To get the full path of the command for CocoaPods run:
echo $(pwd)"/bin/pod"
# e.g. /Users/orta/spiel/ruby/CocoaPods/bin/pod
This is the command you can use to run the branch version of CocoaPods:
cd ~/projects/dev/eidolon
/Users/orta/spiel/ruby/CocoaPods/bin/pod install
Aliasing the command
The terminal supports using aliases as a way of reducing the length of commands. The default terminal shell is called bash, if you'd like to learn how to set a bash alias I would recommend reading this StackOverflow. You can create an alias like spod that uses this folder:
alias spod='/Users/orta/spiel/ruby/CocoaPods/bin/pod'
This means you can instead run spod install to use your custom version of CocoaPods.
Alternative options
Another option is to use Bundler ( CocoaPods for ruby projects ) to maintain your own fork/branches, this is a better option if you are in a team and want to ensure consistency within developers. See CocoaPods Is Ready for Swift for an example of how to do this.