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.
iOS Device Control only works on macOS with tethered real devices or with Xcode 8+ with the simctl tool installed for the iOS Simulator.
Install Xcode 8 or above and verify the following command works:
xcrun simctl --version
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.
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.
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
iOS Device Control is licensed under the open-source Apache 2.0 license.
Please see the guidelines for contributing before creating pull requests.