An embedded HTTP server for performing queries and gestures
Objective-C Shell Ruby HTML C Gherkin
Latest commit d2f697f Jan 18, 2017 @jmoody jmoody committed on GitHub Merge pull request #376 from calabash/feature/update-dylib-sign-shasum
Update shasum of the cert used to sign the calabash dylibs
Failed to load latest commit information.
LPTestTarget Xcode: touched the LPTestTarget assets Aug 30, 2016
VersionTool Parse cli arguments for --revision ALL Jul 7, 2015
XCTest Test: fix color space test for iOS 10 (branch on version) Aug 30, 2016
bin Travis: skip visual inspection of framework Sep 19, 2016
calabash-js @ a28c33e UIScriptASTWith fixed iframe result rect offsets Jan 12, 2016
calabash.xcodeproj Xcode: update to 8.2.1 Jan 3, 2017
calabash Server: bump versio to 0.20.4 Nov 30, 2016
cucumber Cucumber: use xamarin-test-cloud ~> 2.0 Sep 12, 2016
third-party-licenses LPDevice: fix ip address reporting Mar 16, 2016
.gitignore Cucumber: add tests for legacy app touch coordinates Jun 27, 2016
.gitmodules removed moredip/Frank submodule so that it can be replaced with Testi… Feb 5, 2014
.travis.yml Travis: skip visual inspection of framework Sep 19, 2016
APACHE2.txt corrected license info Jan 29, 2012 Doc: update changelog for 0.20.4 Nov 30, 2016 Doc: update contributing for OSS requirements Sep 29, 2016
Gemfile Make: update the Gemfile + lock Sep 12, 2016
Gemfile.lock Jenkins: stabilize run_loop version Sep 19, 2016
LICENSE updated License and notice Jun 3, 2012
LICENSE_ISO8601.txt Support for Dates, Fix bug in offset computation for webviews Oct 11, 2012
Makefile Make: update the dylib make instructions Jan 17, 2017
NOTICE Add SSKeychain's license to NOTICE Mar 6, 2014 Doc: highlight Xcode 8.1 beta in example Sep 30, 2016 A style guide Jun 11, 2015 VERSIONING: whitespace Sep 3, 2015
epl-v10.html updated License info, bugfix in namespace TouchJSON Jan 12, 2012

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

The Calabash iOS Server

The companion of the calabash-ios gem:


Building dylibs now requires a Developer Team.

Requires Xcode 7 or Xcode 8.

Xcode 7.3.1 is actively tested. Older versions of Xcode 7 are not.

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

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

To build with an alternative Xcode:

$ DEVELOPER_DIR=/Xcode/8.1/ 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.

If you want to test the LPTestTarget on device and are having problems in Xcode or the command line with messages like this:

iPhone Developer: ambiguous matches

then you must either:

  1. $ CODE_SIGN_IDENTITY="< cert name >" make ipa-cal (preferred)
  2. Update the Xcode project with a specific Code Signing entity. DO NOT CHECK THESE CHANGES INTO GIT.

Maintainers should be using the Calabash.keychain (calabash/calabash-codesign).


  • 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.