A server for managing, booting, and controlling simulators and devices on remote host machines.
- Enables control of simulators and devices connected to remote host machines
- Enables tests to run using remote simulators and devices
- Enables custom actions on simulators like clearing safari cookies or fast reset of a simulator
- Hides away satisfying desired capabilities, i.e. based on requested model or os will choose an appropriate host to create a simulator
- Download and install Java SDK 10
- set environment variable JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home -v 10 -F)
To use physical devices extra dependencies are required:
brew install libimobiledevice --HEAD
brew install socat
Build and run Device Server
./bootstrap.sh
cd device-server
./run_device_server.sh
Allocate Device
curl -X POST -d '{"model":"iPhone 6", "headless":false}' http://localhost:4567/devices
Query Device Server
curl http://localhost:4567/status
curl http://localhost:4567/devices
Release device by reference
curl -X DELETE http://localhost:4567/devices/${DEVICE_REF}
Ruby sample
require 'ios-device-server-client/remote_device'
server_url = 'http://localhost:4567'
provider = IosDeviceServerClient::DeviceProvider.new(server_url)
rv = provider.create(model: 'iPhone 6', os: 'iOS 11.4', headless: false)
remote_device = IosDeviceServerClient::RemoteDevice.new(server_url, rv['ref'])
begin
remote_device.await(timeout: 30)
remote_device.open_url('https://github.com/badoo/ios-device-server')
readline
ensure
remote_device.release
end
- command line utility will be published soon