The Mobile Gateway for iOS comes with a built-in VNC server which allows you to remotely control iOS devices.
The Mobile Gateway for iOS contains an embedded VNC server which allows you to remotely control iOS devices using a keyboard and mouse.
The Mobile Gateway for iOS allows you to only remotely control iOS devices if these conditions are met:
- Your device is connected to a Windows, Linux or macOS computer using an USB cable
- You have enabled the Developer Tools on your iOS Device
- You have an iOS Developer Account and your iOS device is registered with your iOS developer account.
Enabling the VNC server
You must specify the
--vnc option if you want to start xcuitrunner with the embedded VNC server.
xcuitrunner will listen for VNC connections at port
5900. You can have xcuitrunner listen on another
port by specifying the
Connecting to the VNC server
To connect to the VNC server, have your VNC client using the following parameters:
|Password||The UDID of your device|
We've validated xcuitrunner with the following VNC clients:
- TightVNC Viewer, a desktop-based VNC client for Windows
- UltraVNC, a desktop-based VNC client for Windows and macOS
- noVNC, a HTML5 VNC client. Requires websockify.
- Guacamole, a clientless remote desktop gateway.
You can use the following special key codes to simulate clicking on hardware buttons:
|Device Button||Key Code||Key Description|
|Home Button||Super Left|
|Power Button (Lock/Unlock)|
The frame rate (the frequency at which the remote display of your iOS device is updated) depends on multiple factors, including the size of the display of your iOS device and the performance of the processor in your iOS device.
By default, xcuitrunner will assume a high-bandwidth, low-latency network scenario.
You can improve the bandwidth of the VNC server on low-bandwidth, high-latency networks as follows:
- Enable zlib encoding or Tight encoding by advertising this encoding to the VNC server.
- When using Tigth encoding, you can further influence the performance by advertising either a compression level pseudo-encoding or a JPEG quality level pseudo-encoding.
- In particular, the JPEG quality level pseudo-encoding allows you to make a trade-off between bandwidth versus image quality.