Giter Club home page Giter Club logo

ios-device-server's Introduction

iOS Remote Device Server Build Status

A server for managing, booting, and controlling simulators and devices on remote host machines.

Features

  • 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

Requirements

Java

  • Download and install Java SDK 10
  • set environment variable JAVA_HOME
export JAVA_HOME=$(/usr/libexec/java_home -v 10 -F)

Dependencies

Device Server uses fbsimctl, libimobiledevice and other tools under the hood.

To install dependencies run:

brew update
brew bundle

Simulators

It might take some time to build dependencies used for physical devices. You can skip it by running following instead:

brew update
brew bundle --file="homebrew/Brewfile"

Devices

Some of the dependencies needed for physical devices have outdated stable releases and have to be installed from the latest head.

After installing Brewfile you might still need to run

brew upgrade usbmuxd libimobiledevice --fetch-HEAD

Usage

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

ios-device-server's People

Contributors

fr0l avatar sergey-plevako-badoo avatar nickab avatar maxciv avatar sleekweasel avatar dependabot[bot] avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.