Attach to a running WebDriverAgent application
XCUITest driver provides appium:webDriverAgentUrl capability to attach to a running WebDriverAgent application.
This works for real devices and simulators, but primary usage is for real devices.
How to use appium:webDriverAgentUrl capability
- Start a WebDriverAgent application on a device
 - Start an XCUITest driver session with 
appium:webDriverAgentUrlcapability 
Please read Manage WebDriverAgent by yourself and Real Device Configuration about how to prepare a WebDriverAgent application for real devices and start it.
The appium:webDriverAgentUrl should be http://<reachable ip address for the device>:8100.
If the environment had port-forward to the connected device, it can be http://localhost:8100.
{
  "platformName": "ios",
  "appium:automationName": "xcuitest",
  "appium:platformVersion": "15.5",
  "appium:udid": "<the device's udid>",
  "appium:deviceName": "iPhone",
  "appium:webDriverAgentUrl": "http://<reachable ip address for the device>:8100"
}
This method allows you to manage the WebDriverAgent application process by yourself. XCUITest driver simply attaches to the WebDriverAgent application process. It may improve the application performance.
Some xcuitest driver APIs (for example the mobile: calibrateWebToRealCoordinatesTranslation one) might still require to know
the port number of the remote device if it is a real device. Providing
webDriverAgentUrl capability might not be sufficient to recognize the remote port number in case it is different from the local one. Consider settings the appium:wdaRemotePort capability value
in such case to supply the driver with the appropriate data.