Calabash and Xcode 7
- PDF for offline use
Let us know how you feel about this
last updated: 2016-10
This section preserves some of the older guides that dealt with Xcode 7.
In order to automate an iOS app Calabash must leverage the native automation libraries provided by Apple for this purpose. There are two libraries for UI Automation in iOS.The older automation library is UIAutomation This is the older framework, and is not available if the app is build with Xcode 7.
All of the guides and documentation for Calabash focus on the most recent and stable version of Calabash, iOS, and Xcode. This means that those guides may not be appropriate for teams and organizations that are still using Xcode 7. The older documentation that is relevant to Xcode 7 has be moved to this location so that it is still available to users.
These guides are not actively maintained.
Working with Xcode 7
To test on older versions of iOS, such as iOS 8, install Xcode 7 alongside Xcode 8. It is possible to switch between versions of Xcode by setting the
DEVELOPER_DIR environment variable to point the /Contents/Developer/ folder of the Xcode version to use.
For example, if Xcode 7 is installed in /Applications/Xcode7.app, then the environment variable could be set as follows
$ export DEVELOPER_DIR=/Applications/Xcode7.app/Contents/Developer
The latest versions of Calabash and UITest support testing with both Xcode 7 and Xcode 8. The verison of Xcode used to build the app will determine which native automation API is used to automate the app. The Testing Framework and iOS compatibility for Calabash is determined by the version of Xcode that is used. See the table below:
|iOS Version||Local with Xcode 7||Local with Xcode 8|
For example, a Mac with Xcode 8 installed will be able to test on devices running iOS 10 or iOS 9 using DeviceAgent, but would not be able to test on iOS 8 or below.