# Quick start — iOS

> For the complete documentation index, see [llms.txt](/llms.txt)

`unotest mobile` drives your iOS Simulator and writes real test scenarios for
your app — React Native / Expo or native Swift. Works with any backend stack; no
JS expertise required from you.

:::note[macOS only]
iOS simulators can't run on Linux/Windows (Apple licensing). You need macOS with
Xcode + the iOS Simulator, and Node 20+.
:::

## 1. Point it at your built `.app`

```sh
npx @unotest/mobile install /path/to/Your.app --update-env
```

This installs the app on the Simulator and auto-detects the bundle ID, URL
scheme and required permissions from `Info.plist`. On first run it offers to
bootstrap `unotest/` and `.mcp.json`.

Common `.app` locations:

- **React Native / Expo:** `./ios/build/Build/Products/Debug-iphonesimulator/<App>.app`
  after `npx expo run:ios`.
- **Native Swift:** Xcode → Product → Show Build Folder → `Products/Debug-iphonesimulator/`.

:::caution[First run compiles WebDriverAgent]
The first run builds WebDriverAgent once (~5–15 min) and caches it under
`~/.cache/unotest/mobile/wda/`. Subsequent runs reuse it.
:::

## 2. Ask your agent for a test

Open Claude Code (or Cursor / Codex) **in the same directory** and ask for a
test. The agent drives the Simulator over MCP, reading the live accessibility
tree — not screenshots — and records a clean `.js` scenario.

## 3. Run it

```sh
npx @unotest/mobile e2e <name>
```

Scenarios are plain `.js` in `unotest/e2e/` — into git, code review and CI.

## Next

- [How it works](/start/how-it-works/)
- [CLI — mobile](/reference/cli-mobile/)
