Xamarin Test Cloud is now part of Visual Studio App Center! Get Started.

Calabash 0.16.3

This release requires a server update to 0.16.2i; the 0.16.3 gem is compatible with the 0.16.2 server.

It also requires a run-loop update to 1.5.4.

Special thanks to @agileseph, @ark-konopacki, @harikavegi1991, @pfisher, and @sapieneptus for their recent reporting of issues and pull requests.


If you are not already using bundler and Gemfile, we strongly recommend that you start.

If you are installing gems with sudo, we strongly recommend that you install a managed ruby or manage your gem environment manually.

Calabash 2.0

Calabash 2.0 is in pre-release.

Please report issues with Calabash 2.0 as a GitHub issue or on Stack Overflow.

We are looking for help from the community to finish implementing Calabash 2.0. You can see what has to be done in the project GitHub issues.

Xamarin Test Cloud users: Calabash 2.0 is not yet supported on Test Cloud. Test Cloud support will be available before Calabash 2.0 is released.


This release provides support for Xcode 7 and experimental support for 7.1 beta 1. iOS 9 beta devices are available on the Xamarin Test Cloud.

There are several things that are known not to work in Xcode 7.

  1. Sending apps to the background is broken on Xcode 7 simulators and iOS 9 devices.
  2. The fast :preferences UIA strategy is broken for Xcode 7 simulators; the default strategy will be :host. The :host strategy is already the default for physical devices (since Xcode 6). If you are looking for a faster alternative to :host, you can try the :shared_element strategy (for both simulators and devices). Keep in mind that this strategy has not been thoroughly tested and may not work on all apps.
  3. We have several failing unit tests in the Calabash iOS Server for Xcode 7 that appear to indicate a problem with Apple's UIView internals when translating points in UIWebView and WKWebView. Our WebView cucumber tests are passing, but we want to notify people that there might be a problem.
  4. Xcode 7's simctl uninstall/install API is broken.

Breaking Changes

The Playback API that Calabash iOS has been using for device rotation since iOS 4 stopped working on iOS 9. Device rotations are now done with the UIAutomation Device Rotation API. This is a breaking change because on physical devices, the app will launch in the last orientation it was forced into. Previously, apps would launch in portrait (or in landscape if the app was landscape only). Tests that rely on a particular orientation should assert the orientation before the test starts. We recommend rotate_home_button_to({:up|:down|:left|:right}).

Changing an iPad's keyboard mode (split, undocked, or docked) is no longer possible in iOS 9. Calls to ensure_split_keyboard and ensure_undocked_keyboard in iOS 9 will raise a KeyboardModeError. If a keyboard is already in split or undocked mode, calling ensure_docked_keyboard will raise the same error.


This is a reminder to check out the Calabash documentation on the Xamarin site. The information there is excellent and constantly improving.



See https://github.com/calabash/calabash-ios/wiki/Deprecated

RunLoop::XCTools has been deprecated (replaced) in run-loop 1.5.0.

Hot Topics

See https://github.com/calabash/calabash-ios/wiki/Hot-Topics

  • instruments and Instruments.app cannot launch apps on iOS 7.1 Simulators on Yosemite with Xcode 6
  • Xcode 6.3 - instruments cannot launch my app on iOS 8.3 Simulators [RESOLVED]
  • Enable Development After Upgrading Devices to 8.*
  • Errno::EINTR: Interrupted system call
  • NSLog output can cause apps to become unresponsive during testing
  • cucumber is not compatible with ruby 2.2.0

Xamarin Workbook

If it's not already installed, install the Xamarin Workbooks app first. The workbook file should download automatically, but if it doesn't, just click to start the workbook download manually.