Quamotion provides software which allows you to run Xcode UI Tests from Windows and Linux-based PCs. Quamotion provides you with xcuitrunner, a stand-alone command-line utility.
Before you can use Quamotion xcuitrunner, you need to make sure you meet the following prerequisites:
- You have an iOS Developer Profile which allows you to sign iOS applications and run iOS applications signed with your developer certificate on your devices.
- You have a copy of the relevant Developer Disk images on your local PC
- On a Mac machine, make sure the latest version of XCode is installed
- Navigate to the
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupportfolder and create a zip archive that contains the contents of this folder.
- Copy this zip archive to your PC.
- Unzip this archive on your PC.
- A system service (or daemon) which manages the connectivity with all iOS devices on your PC. This system service (or daemon) is conceptually similar to
adbwhich enables connectivity to your Android devices. It exposes an endpoint to which applications can connect, and then forwards the communication to the correct iOS device over USB. In other words, it “multiplexes” all connections to iOS devices through the USB stack. This system service (or daemon) is called
usbmuxd- short for USB multiplexor daemon. On Windows, the Apple Mobile Device Service is installed as part of iTunes. On Linux, you can install this package from the Quamotion Ubuntu and CentOS package repositories.
Depending on your operating system (Linux or Windows) you need also the following:
To run Quamotion xcuitrunner on Windows, make sure:
- You have installed iTunes
To run Quamotion xcuitrunner on Ubuntu Linux, you need to install a couple of packages.
Run the following commands to install these packages:
sudo add-apt-repository ppa:quamotion/ppa sudo apt-get update sudo apt-get install -y libusbmuxd-tools libplist-dev libusbmuxd-dev libimobiledevice-dev usbmuxd
To run Quamotion xcuitrunner on CentOS Linux, you need to install a couple of packages.
Run the following commands to install these packages:
sudo yum install -y yum-utils libicu sudo yum-config-manager -y --add-repo https://download.opensuse.org/repositories/home:/qmfrederik/CentOS_7/home:qmfrederik.repo sudo yum install -y libplist-devel libusbmuxd-devel libimobiledevice-devel usbmuxd
Verifying usbmuxd (Linux only)
Execute the following steps to make sure your iOS device is connected to your PC over USB and has been detected correctly
lsusb -vto check whether the Linux USB stack has correctly detected your device.
idevice_id -lto check whether
usbmuxdhas correctly detected your device. You should see the UDID of your device in the system output.
idevicesyslogto make sure you can connect to system services running on your device. This command should show the system log of your USB device.
Try the following steps if your device is not being detected correctly:
- Unplug the USB cable of your device, and then re-connect the cable.
- If a pop up message appears on your device, click the Trust button to establish a secure connection between your iOS device and your PC.
systemctl status usbmuxdto check the status of the
usbmuxdagent on your device.
journalctl -u usbmuxdto get the log output of the
Using Quamotion xcuitrunner
To use Quamotion xcuitrunner, run the following command:
xcuitrunner run --udid <udid> --developerProfile <path to your developer profile> --developerProfilePassword <password for your developer profile> --developerDiskDir <path to your developer disk folder> --license <path your Quamotion license file>
The available options are:
|Short Name||Long Name||Value|
||The UDID of the device on which to run the Xcode UI Test. You can omit this parameter if exactly one iOS device is connected to your computer.|
||The path to your iOS Developer Profile.|
||The password for your developer profile.|
||Keep the current signature on the Xcode UI Test bundle. Do not resign the test bundle.|
||The path to the Quamotion license file|
||The path to a folder which contains the iOS developer disks|
||The path to the test bundle containing your Xcode UI Tests. This must be an .ipa file. Launches Facebook WebDriverAgent if not specified.|
||The bundle ID of the test bundle containing your Xcode UI Tests. Use this option if the test bundle is installed on your device.|
||The ID of the test bundle plugin. Use this option if the test bundle is installed on your device.|
|-nf||–noforward||Disables port forwarding.|
|-f||–forward||Defines the local port for the WebDriverAgent.|
|–vnc||Starts a VNC server. Requires the WebDriverAgent. You can connect to the VNC server using TightVNC. Specify the UDID of your device as password. This allows you to remotely control your device using a mouse and keyboard.|
|–vncPort||The port on which the VNC server should listen.|
|-v||–verbose||Enables diagnostic logging to a log file.|
You can download Xcode UI Test Runner for the following platforms:
- Xcode UI Test Runner for Windows, version 0.144.77
- Xcode UI Test Runner for Ubuntu 16.04, version 0.144.77 xcuitrunner.0.144.77.ubuntu.16.04-x64.tar.gz | xcuitrunner.0.144.77.ubuntu.16.04-x64.deb
- Xcode UI Test Runner for Ubuntu 18.04, version 0.144.77 xcuitrunner.0.144.77.ubuntu.18.04-x64.tar.gz | xcuitrunner.0.144.77.ubuntu.18.04-x64.deb
- Xcode UI Test Runner for CentOS 7, version 0.144.77 xcuitrunner.0.144.77.centos.7-x64.tar.gz | xcuitrunner.0.144.77.centos.7-x64.rpm
For more information about the Quamotion xcuitrunner command-line utility, contact us at firstname.lastname@example.org.