Skip to content


Subversion checkout URL

You can clone with
Download ZIP
An embedded HTTP server for performing queries and gestures
Objective-C Shell Ruby HTML C Cucumber
Failed to load latest commit information.
LPTestTarget LPTestTarget: force a new app SHA for every build
VersionTool Parse cli arguments for --revision ALL
XCTest LPDevice: add missing iPadPro identifier
bin Jenkins: manage CoreSim process before cucumbers
calabash-js @ e83b4c2 Pulled latest changes from calabash-js submodule
calabash.xcodeproj Merge pull request #296 from calabash/feature/libraries-should-not-ge…
calabash Libs: bump the server version to 0.17.0
cucumber Cucumber: try preferences
third-party-licenses Move the SSKeychain license to third-party-licenses
.gitignore Git: ignore .DS_Store
.gitmodules removed moredip/Frank submodule so that it can be replaced with Testi…
.travis.yml Travis: make dylibs
APACHE2.txt corrected license info Changlog for 0.17.0 Add link to 'git commit messages' articile to CONTRIBUTING
Gemfile Update run-loop and luffa dependencies
Gemfile.lock Update run-loop and luffa dependencies
LICENSE updated License and notice
LICENSE_ISO8601.txt Support for Dates, Fix bug in offset computation for webviews
Makefile Make: add rule for building LPTestTarget ipa
NOTICE Add SSKeychain's license to NOTICE Docs: add integration tests info to README A style guide VERSIONING: whitespace
epl-v10.html updated License info, bugfix in namespace TouchJSON

master develop versioning license contributing
Build Status Build Status Version License Contributing

The Calabash iOS Server

The companion of the calabash-ios gem:


Requires Xcode 6 or Xcode 7.

Xcode 6.4 is actively tested. Older versions of Xcode 6 are not.

Requires ruby >= 2.0. The latest ruby release is preferred.

$ git clone --recursive
$ cd calabash-ios-server
$ bundle

To build with an alternative Xcode:

$ DEVELOPER_DIR=/Xcode/7.1b5/ make < rule >

If you have build errors, see the xcpretty section below.

Maintainers must install the calabash/calabash-resign private repo. Details are below.

Building the Framework

make framework

Building the frank plugin

$ make frank

Building the dylibs

Requires Xcode 6 or greater.

make dylibs


If you are a maintainer, you must install the codesign tool if you are planning on making a Calabash iOS gem release.

Building to embed in Calabash gem

See the calabash-ios/calabash-cucumber/Rakefile for more details.

$ cd path/to/calabash-ios/calabash-cucumber
$ be rake build\_server


# Objective-C Unit tests.
$ make xct

# Building libraries.
$ make all

# Integration tests
$ make framework
$ make app-cal
$ cd cucumber
$ bundle update
$ bundle exec cucumber

If you are running the XCTests from Xcode, you might see failures in LPJSONUtilsTest. If you do, clean (Shift + Option + Command + K) and rerun.


  • The Calabash iOS Toolchain uses git-flow.
  • Contributors should not bump the version.
  • See the guide.
  • There is a style guide:
  • Pull-requests with unit tests will be merged faster.
  • Pull-requests with Cucumber integration tests will be merged even faster.


See the document for instructions.


We use xcpretty to make builds faster and to reduce the amount of logging. Travis CI, for example, has a limit on the number of lines of logging that can be generated; xcodebuild breaks this limit.

The only problem with xcpretty is that it does not report build errors very well. If you encounter an issue with any of the make rules, run without xcpretty:

$ XCPRETTY=0 make ipa


Calabash iOS Server uses several third-party sources. You can find the licenses for these sources in the third-party-licenses directory.

Something went wrong with that request. Please try again.