Skip to main content


The Eggplant Gateway for Appium supports automating iOS physical devices by connecting to an Appium server. This gateway is only supported on macOS.


The Eggplant Gateway for Appium is designed to work with Appium 2.0 (W3C WebDriver protocol).


  1. Install the latest supported xcode version on your Mac pc.
  2. Install Node.js and npm
  3. Install Appium server.
  4. Install the iOS driver: appium driver install xcuitest
  5. Configure a developer certificate and a Provisioning Profile which allows you to sign iOS applications and run iOS applications on your devices. The Appium gateway supports the basic (automatic) configuration using xcodeOrgId and xcodeSigningId.

Getting started

Enabling automation on your iOS device

  1. Establish trust between your PC and your device.
    • Connect your iOS device to your PC using an USB cable.
    • The pop-up Trust this Device will appear on your iOS device, click Trust. It can take up to one minute for your iOS device and your machine to initiate the pairing process.
  2. Enable developer mode on your device (iOS 16 and later).
    • In the Settings app on your iOS device, scroll down and tap Developer Mode.
    • Turn on the Developer Mode toggle at the top.
    • A prompt will appear at the bottom asking you to reboot your iOS device for enabling the feature. Tap Restart to proceed. Your iOS device will now reboot.
    • Once the device is restarted and unlocked, a prompt should appear on the screen asking you whether you wish to turn on Developer Mode on your device. Tap Turn On. When you do that, iOS will enable Developer Mode on your iOS device and you should be able to connect .

Creating a connection

To create an Eggplant Gateway for Appium connection to a physical iOS device, run the following command:

epgw add appium
--name <name> (REQUIRED)
--deviceId <udid> (REQUIRED)
--platformName "iOS"
--xcodeSigningId <signingId> (REQUIRED)
--xcodeOrgId <teamId> (REQUIRED)

For example, epgw add appium --name appium-ios17 --platformName "iOS" --deviceId ""
--xcodeOrgId "Q73Y67F7ET" --xcodeSigningId "iPhone Developer"

The available options are:

nameThe connection name
platformNameThe platform name (currently only iOS is supported)
deviceIdThe UDID of the device which you want to automate.
xcodeSigningIdThe signing id, usually Apple Developer or iPhone Developer.
xcodeOrgIdThe team identifier
helpShow help and usage information

Connecting to Eggplant Functional

Follow these steps to start an emulator through Eggplant Functional:

  1. Start Appium server: appium
  2. Run epgw vnc <name>, where name is the name of your Gateway connection. For example, epgw vnc appium-ios17.
    • The Eggplant Gateway will start:
      • A VNC server at port 5900
      • A WebDriver server at port 5000
  3. Start Eggplant Functional and manually add your device to the connection list.