MCPcopy Index your code
hub / github.com/appium/appium-xcuitest-driver

github.com/appium/appium-xcuitest-driver @v11.17.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v11.17.1 ↗ · + Follow
1,457 symbols 3,485 edges 221 files 263 documented · 18% 6 cross-repo links updated 2d agov11.17.1 · 2026-07-01★ 8663 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

appium-xcuitest-driver

npm version Downloads

Release

This is an Appium driver for automating iOS applications on iOS, iPadOS, and tvOS.

[!IMPORTANT] Only macOS is supported as the host platform, as it requires Xcode and developer tools.

[!IMPORTANT] Since major version 10.0.0, this driver is only compatible with Appium 3. Use the appium driver install xcuitest command to add it to your distribution.

Documentation

The Documentation is hosted separately at https://appium.github.io/appium-xcuitest-driver

Contributing & Development

Clone this project from GitHub and run:

npm install

To watch changes during the development:

npm run watch

To run unit/functional tests:

npm test # unit
npm run e2e-test # functional

There are also a number of environment variables that can be used when running the tests locally. These include:

  • REAL_DEVICE - set to anything truthy, makes the tests use real device capabilities
  • _FORCE_LOGS - set to 1 to get the log output, not just spec
  • PLATFORM_VERSION - change the version to run the tests against (defaults to 9.3)
  • XCCONFIG_FILE - specify where the xcode config file is for a real device run (if blank, and running a real device test, it will search for the first file in the root directory of the repo with the extension "xcconfig")
  • UICATALOG_REAL_DEVICE - path to the real device build of UICatalog, in case the npm installed one is not built for real device

Extension points exported contracts — how you extend this code

PortForwarder (Interface)
(no doc) [6 implementers]
lib/device/device-connections-factory.ts
IConditionInducer (Interface)
(no doc) [4 implementers]
lib/types.ts
DeviceGuardDriver (Interface)
(no doc) [1 implementers]
lib/commands/helpers/guards.ts
AutInstallationState (Interface)
(no doc)
lib/driver.ts
PlatformVersionOpts (Interface)
(no doc)
lib/utils/platform.ts
EnvVarCheckOptions (Interface)
(no doc)
lib/doctor/required-checks.ts
WalkDirPullWalkContext (Interface)
Context for bounded concurrent pull during ios-device walkDir.
lib/device/afc-client.ts
Page (Interface)
(no doc)
lib/types.ts

Core symbols most depended-on inside this repo

isEmpty
called by 73
lib/utils/lang.ts
close
called by 50
lib/device/simulate-location-client.ts
amendCapabilities
called by 43
test/functional/desired.ts
initSession
called by 43
test/functional/helpers/session.ts
isRealDevice
called by 31
lib/commands/helpers/guards.ts
deleteSession
called by 29
test/functional/helpers/session.ts
start
called by 25
lib/device/device-connections-factory.ts
stop
called by 22
lib/device/device-connections-factory.ts

Shape

Function 683
Method 482
Class 133
Interface 132
Enum 27

Languages

TypeScript100%

Modules by API surface

test/fixtures/guinea-pig/js/jquery.min.js71 symbols
lib/commands/web.ts46 symbols
lib/driver.ts44 symbols
lib/doctor/optional-checks.ts41 symbols
scripts/sign-wda.mjs40 symbols
lib/device/device-connections-factory.ts40 symbols
lib/device/real-device-management.ts39 symbols
scripts/tunnel-creation.mjs35 symbols
lib/device/afc-client.ts34 symbols
lib/commands/types.ts30 symbols
lib/commands/context.ts24 symbols
lib/commands/gesture.ts23 symbols

For agents

$ claude mcp add appium-xcuitest-driver \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page