The foremost goal of CocoaPods.app is to provide a full-featured and standalone installation of CocoaPods, instead of requiring users to install CocoaPods through RubyGems or Homebrew. In addition to easy installation, it also includes ease of updating.
It is able to expose this standalone installation in a command-line interface environment through
pod command-line tool, which it will request to install on launch of the application or
through the ‘Install the Command-Line Tool…’ menu item under the application menu.
Building for Development
If you want to hack on
This is known to work on Xcode 9.3, and high sierra
git clone https://github.com/CocoaPods/CocoaPods-app.git --recursive cd CocoaPods-app rake app:prerequisites --quiet open app/CocoaPods.xcworkspace
This will set up your environment with a compiled versions of: ruby, git, cocoapods (the gem), hg, openssl, etc into both
The main tasks can be found with
rake app:build # Build release version of application rake app:clean # Clean rake app:prerequisites # Prepare all prerequisites for building the app rake app:update_version # Updates the Info.plist of the application to reflect the CocoaPods version rake bundle:build # Build complete dist bundle rake bundle:clean:all # Clean all artefacts, including downloads rake bundle:clean:artefacts # Clean build and destroot artefacts rake bundle:submodules # Ensure Submodules are downloaded rake bundle:test # Test bundle rake bundle:verify_linkage # Verifies that no binaries in the bundle link to incorrect dylibs rake release # Create a clean release build for distribution rake release:build # Perform a full build of the bundle and app rake release:cleanbuild # Create a clean build rake release:sparkle # Version bump the Sparkle XML rake release:upload # Upload release
If you’re working on the build system and want to debug intermediate steps, such as building Ruby,
Git, Subversion, Mercurial, or Bazaar, be sure to checkout all the tasks with
rake -T -A.
We have heard reports of issues with installing on custom ruby installations, we'd recommend using system ruby (
rvm use system for example) during the installation process. Nothing will be installed into the system, it all goes into the
destroot folder, but then you have the same environment we are using.
Creating a release