Calabash iOS 0.18.2
- This release requires a server update to 0.18.2.
- This releases requires at least run-loop 2.0.9.
- Calabash iOS now requires ruby >= 2.0.
These two wiki pages have instructions for updating the most recent versions.
The TCC.db interface for iOS Simulators has been removed from Calabash iOS. It has been broken for CoreSimulator environments since Xcode 6.
done method is now deprecated. It will be removed in Calabash iOS
0.19.0. It was replaced with
tap_keyboard_action_key in Calabash
A number of methods have been removed from Calabash::Cucumber::Launcher. See the Deprecated section below.
- Improved screenshots for OpenGL views, custom keyboards, alerts, and sheets.
- App bundle detection has been reimplement in RunLoop. Thank you to @ark-konopacki, @arulami, and @topgenorth for letting me borrow their machines to debug this problem.
Automatic App Detection
If Calabash cannot detect your application, you will see new errors. The error messages will tell you where Calabash searched for you application and give you suggestions about how to help Calabash find your application.
Calabash depends on information in your .xcodeproj to find your application.
If there are multiple .xcodeproj in or below the directory where you run
cucumber, Calabash might not be able to determine which .xcodeproj to use.
If you get this error, set the
XCODEPROJ environment variable.
$ XCODEPROJ=My.xcodeproj bundle exec cucumber
If no application for the iOS Simulator can be found in your DerivedData
directories or by searching recursively down from the directory where
cucumber, this error will be raised. You probably need to
build your application for the iOS Simulator.
If you are using dylib injection, automatic detection will not work
for you. The search algorithm only finds .app bundles that have been
linked with Calabash. You must continue to use the
Calabash iOS 0.19.0 will deprecate many parts Calabash. In particular, the playback API will be removed and the SimulatorLauncher module will be removed. We need to prepare for running with XCUITest.
We wll try hard to be backwards compatible, but there will be some bumps in the road. We have a lot of legacy code from iOS 3, 4, 5, and 6 that needs to go because it is slowing down the development of new features.
Please do not install gems with sudo.
If you are just getting started with Ruby and Calabash on MacOS, we have a new tool: the calabash-sandbox.
For advanced users, we recommend a managed ruby.
If you are not already using bundler and Gemfile, we strongly recommend that you start.
Docs and Examples
For this release, we've updated the README and many of the wiki pages. At the moment the wiki is publicly editiable. If you see a typo or a way to improve the docs, please make the change. If the change is significant, create an issue and we can discuss.
We have also updated the following repositories:
- Getting starting with Calabash
- iOS Smoke Test App
- nearly 100% coverage of all the Calabash iOS gestures and behaviors
- examples of how manage the app life cycle and reset the keychain
- scripts that demonstrate an efficient Calabash workflow, including how to stage binaries from Xcode builds and how to submit to the Xamarin Test Cloud.
- iOS WebView App
- Updated with iframe examples
We've discovered the :preferences is not stable enough to use on Simulators or physical devices. The default will remain :host.
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.
- Testing on Physical Devices
- Improving Network Stability
- Managing Privacy Alerts: Location Services, APNS, Contacts
- Load Calabash dylibs in Debug configuration at runtime
- UIWebView and WKWebView API
This is a reminder to check out the Calabash documentation on the Xamarin site. The information there is excellent and constantly improving.
- RunLoop::XCTools has been deprecated (replaced) in run-loop 1.5.0.
- RunLoop::Bridge::Simctl has been deprecated (replaced) in run-loop 2.0
- RunLoop::SimControl is in the process of being deprecated; planned for run-loop 3.0
- Calabash::Cucumber::Launcher - these methods have been removed and not
- instruments and Instruments.app cannot launch apps on iOS 7.1 Simulators on Yosemite with Xcode 6. iOS 7 Simulators are not supported on El Cap.
- Errno::EINTR: Interrupted system call (FIFO)
- NSLog output can cause apps to become unresponsive during testing