Git Product home page Git Product logo

ios-device-control's Introduction

iOS Device Control Library

iOS Device Control is a Java library for controlling the iOS Simulator and real (physical) iOS devices tethered to a device running macOS. The library offers the ability to get device properties, install and start applications, take screenshots, capture logs, and more!

Examples of how to use this library can be found here. To build the examples, run:

mvn assembly:assembly

which will create two runnable jars in the target directory.

Installation

iOS Device Control only works on macOS with tethered real devices or with Xcode 8+ with the simctl tool installed for the iOS Simulator.

Simulator Automation

Install Xcode 8 or above and verify the following command works:

xcrun simctl --version

Real Device Automation

The following dependencies can be installed easily with homebrew:

brew install autoconf automake libtool libxml2 libzip pkg-config openssl

Install libplist by building from source:

git clone https://github.com/libimobiledevice/libplist.git
cd libplist
./autogen.sh
make
sudo make install

Install libusbmuxd by building from source:

git clone https://github.com/libimobiledevice/libusbmuxd.git
cd libusbmuxd
./autogen.sh
make
sudo make install

Install libimobiledevice by building from source:

git clone https://github.com/libimobiledevice/libimobiledevice.git
cd libimobiledevice
./autogen.sh
make
sudo make install

Install ideviceinstaller by building from source:

git clone https://github.com/libimobiledevice/ideviceinstaller.git
cd ideviceinstaller
./autogen.sh
make
sudo make install

Install idevice_app_runner and idevicewebinspectorproxy by building from source. This can be done by following the instructions outlined in the READMEs of the respective projects in the third_party directory.

Optional Utilities

Most of the iOS Device Control library can be used with just the above tools. For additional control of real devices, the following tools can optionally be installed:

Install Apple Configurator 2 and install the automation tools by selecting the "Install Automation Tools..." option under the Apple Configurator 2 menu.

Install the provided OpenUrl app by following the instructions here to automate Safari on real devices.

Troubleshooting

For real devices, make sure that both the device is trusted and the lockdown folder has the correct permissions.

sudo chmod -R 777 /var/db/lockdown

License

iOS Device Control is licensed under the open-source Apache 2.0 license.

Contributing

Please see the guidelines for contributing before creating pull requests.

ios-device-control's People

Contributors

cltsd27 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  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.