MCPcopy Index your code
hub / github.com/appium/appium-ios-simulator

github.com/appium/appium-ios-simulator @v8.2.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v8.2.6 ↗ · + Follow
211 symbols 433 edges 35 files 43 documented · 20% 1 cross-repo links updated 1d agov8.2.7 · 2026-07-07★ 110
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

appium-ios-simulator

NPM version Downloads

Appium API for dealing with iOS simulators. The API enables you to use the following features:

  • query locations of Simulator-specific directories and applications
  • read/write access to Simulator settings
  • full control over starting and stopping simulators
  • deal with biometric auth, geolocation settings, application permissions, and others

Usage

async getSimulator(udid)

This is the main entry of this module. This function returns a simulator object (see below) associated with the udid passed in. If an iOS simulator with the given udid does not exist already on this machine, it will throw an error.

If you want to create a new simulator, you can use the createDevice() method of node-simctl.

import { getSimulator } from 'appium-ios-simulator';
import assert from 'node:assert/strict';

const sim = await getSimulator('DAE95172-0788-4A85-8D0D-5C85509109E1');
await sim.run();
assert.equal('Booted', (await sim.stat()).state);
await sim.shutdown();
assert.equal('Shutdown', (await sim.stat()).state);

Third-party tools

The following tools and utilities are not mandatory, but could be used by the appium-ios-simulator, if installed locally, to extend its functionality:

Xcode and iOS versions

Check Xcode wikipedia for more details about Xcode version to iOS version mapping.

Development

Checkout the repository and run

npm install
npm run dev

Use the following commands to run tests:

# unit tests
npm run test
# integration tests
npm run e2e-test

Extension points exported contracts — how you extend this code

CoreSimulator (Interface)
(no doc) [2 implementers]
lib/types.ts
SimulatorInfoOptions (Interface)
(no doc)
lib/utils/types.ts
Device (Interface)
(no doc)
test/unit/device-list.ts
InteractsWithApps (Interface)
(no doc) [1 implementers]
lib/types.ts
SupportsBiometric (Interface)
(no doc) [1 implementers]
lib/types.ts
SupportsGeolocation (Interface)
(no doc) [1 implementers]
lib/types.ts
InteractsWithKeychain (Interface)
(no doc) [1 implementers]
lib/types.ts

Core symbols most depended-on inside this repo

getSimulator
called by 25
lib/simulator.ts
killAllSimulators
called by 17
lib/utils/lifecycle.ts
run
called by 15
lib/types.ts
shutdown
called by 9
lib/types.ts
verifyStates
called by 9
test/functional/helpers.ts
launchApp
called by 8
lib/types.ts
isAppRunning
called by 8
lib/types.ts
setPermission
called by 8
lib/types.ts

Shape

Method 104
Function 73
Interface 26
Class 8

Languages

TypeScript100%

Modules by API surface

lib/types.ts88 symbols
lib/simulator-xcode-14.ts35 symbols
lib/extensions/settings.ts15 symbols
lib/extensions/permissions.ts13 symbols
lib/utils/defaults.ts8 symbols
lib/extensions/applications.ts8 symbols
lib/simulator-xcode-15.ts5 symbols
lib/extensions/safari.ts4 symbols
lib/extensions/keychain.ts4 symbols
lib/extensions/biometric.ts4 symbols
test/setup.ts3 symbols
lib/utils/xcode.ts3 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

For agents

$ claude mcp add appium-ios-simulator \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page