Skip to main content

VNC server

The Mobile Gateway for iOS comes with a built-in VNC server which allows you to remotely control iOS devices.

You can use standard VNC clients, such as noVNC, TightVNC or RealVNC to remotely control iPhone, iPad and iPod devices.

The Mobile Gateway for iOS contains an embedded VNC server which allows you to remotely control iOS devices using a keyboard and mouse.

Remotely controlling an iPhone using xcuitrunner and TightVNC

Requirements

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 --vncPort option.

Connecting to the VNC server

To connect to the VNC server, have your VNC client using the following parameters:

ParameterValue
Serverlocalhost or 127.0.0.1
Port5900 or the value specified in --vncPort
PasswordThe UDID of your device

Supported Clients

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.

Hardware Keys

You can use the following special key codes to simulate clicking on hardware buttons:

Device ButtonKey CodeKey Description
Home Button0xffebSuper Left
Power Button (Lock/Unlock)0x1008FF10XF86XK_Standby
Volume Up0x1008FF13XF86XK_AudioRaiseVolume
Volume Down0x1008FF11XF86XK_AudioLowerVolume

Performance Considerations

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: