An embedded HTTP server for performing queries and gestures
jmoody Merge pull request #433 from calabash/feature/make-framework
Update min target version for calabash.framework
Latest commit 1db4282 Sep 20, 2018
Failed to load latest commit information.
Carthage/Build/iOS Test: update Specta, Expecta, and OCMock May 4, 2018
LPTestTarget Fixed web page url. Aug 3, 2018
Vendor/Fingertips TestTarget: add Fingertips window to track touches Jul 18, 2017
VersionTool Parse cli arguments for --revision ALL Jul 7, 2015
XCTest LPDevice: add form factors for model numbers Sep 17, 2018
bin Bin: bump IPHONE_DEPLOYMENT_TARGET for dylibs and framework build scr… Sep 19, 2018
calabash-js @ a28c33e UIScriptASTWith fixed iframe result rect offsets Jan 12, 2016
calabash.xcodeproj Project: Xcode 10 touched the versioning script build phase Jul 31, 2018
calabash Doc: update version to 0.21.7 Sep 17, 2018
cucumber Test: remove acquaint and device agent tests May 14, 2018
third-party-licenses TestTarget: add Fingertips window to track touches Jul 18, 2017
.gitignore Bin: update scripts to submit tests in AppCenter instead of XTC May 14, 2018
.gitmodules removed moredip/Frank submodule so that it can be replaced with Testi… Feb 5, 2014
.travis.yml-backup Remove frank target May 15, 2018
APACHE2.txt corrected license info Jan 29, 2012 Doc: update version to 0.21.7 Sep 17, 2018 Doc: update version to 0.21.7 Sep 17, 2018
Cartfile.private Test: update Specta, Expecta, and OCMock May 4, 2018
Cartfile.resolved Test: update Specta, Expecta, and OCMock May 4, 2018 Project: fix calabash-ci URL Jan 22, 2018
Gemfile Ruby: remove bundler version restriction Sep 14, 2017
Jenkinsfile Jenkins: experimental timeouts + Xcode 9.4.1 Aug 2, 2018
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 Bin: remove dependency on apple/ script May 15, 2018
NOTICE Add SSKeychain's license to NOTICE Mar 6, 2014 Doc: update version to 0.21.7 Sep 17, 2018 A style guide Jun 11, 2015 VERSIONING: whitespace Sep 3, 2015
epl-v10.html updated License info, bugfix in namespace TouchJSON Jan 12, 2012

Status versioning license contributing
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 9.4.1 or Xcode 10.

Xcode 9.4.1 is actively tested. Older versions of Xcode 8 are not.

Requires ruby >= 2.3.*.

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

To build with an alternative Xcode:

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

Non-maintainers will see code signing errors like:

No certificate matching 'Mac Developer: Karl Krukow (YTTN6Y2QS9)' for
team 'FYD86LA7RE': Select a different signing certificate for
CODE_SIGN_IDENTITY, a team that matches your selected certificate, or
switch to automatic provisioning.

when building - you must edit the code signing settings in the Xcode project for the target you are trying to build. Turning on automatic provisioning is usually the easiest solution.

Building the Framework

make framework

Building the dylibs

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
$ bundle update
$ rake build_server


# Objective-C Unit tests.
$ make xct

# Building libraries.
$ make all

# Integration tests
$ make framework
$ make app-cal
$ bin/test/

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.