> For the complete documentation index, see [llms.txt](https://docs.drizz.dev/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.drizz.dev/start-here/platform-support.md).

# Platform & Device support

Drizz automates native Android, native iOS and mobile web. Physical iPhones and iPads are supported, not only simulators.

|                 |                                                        |
| --------------- | ------------------------------------------------------ |
| **Platforms**   | Android · iOS · Mobile web                             |
| **Android**     | Emulator · Physical device                             |
| **iOS**         | Simulator · Physical iPhone/iPad                       |
| **Run targets** | Local (your Mac) · Drizz device cloud · Private device |

## Prerequisites

* macOS host, Apple Silicon or Intel
* Drizz desktop app installed and signed in
* Xcode, opened at least once — iOS only
* Desktop app — physical iPhone or iPad only
* An Apple development team, free or paid — physical iPhone or iPad only

## Support matrix

| Platform       | Device type                   | Local | Drizz cloud |
| -------------- | ----------------------------- | ----- | ----------- |
| **Android**    | Emulator                      | ✅     | ✅           |
| **Android**    | Physical device (USB)         | ✅     | ✅           |
| **iOS**        | Simulator                     | ✅     | ✅           |
| **iOS**        | Physical iPhone / iPad (USB)  | ✅     | ✅           |
| **Mobile web** | Browser on a connected device | ✅     | ✅           |

✅ Supported · ❌ Not applicable&#x20;

**Public/Private devices** on cloud are hardware your organization owns, reserved for your org — used for compliance requirements, specific handsets, and SIM, carrier testing etc.

## Desktop app and Drizz Cloud

|                    | **Desktop app**                                           | **Drizz Cloud**                                       |
| ------------------ | --------------------------------------------------------- | ----------------------------------------------------- |
| **Runs on**        | Your Mac, against a connected or emulated physical device | Drizz infrastructure, against the device cloud        |
| **Used for**       | Authoring: Writing tests, debugging, iteration            | Orchestration: Suites, regression, CI, scheduled runs |
| **Parallelism**    | One device at a time                                      | Many tests at once                                    |
| **Feedback**       | Live — the device and console together                    | A report after the run                                |
| **App under test** | Installed on the connected device                         | A registered app, uploaded to Drizz cloud             |

A test file is identical on both surfaces. A test written against a local emulator runs in the cloud unedited when the registered build matches. Editing tests on local changes the same on device.&#x20;

| Task                                | Surface                                                |
| ----------------------------------- | ------------------------------------------------------ |
| Writing a new test                  | Desktop app                                            |
| Debugging one failing step          | Desktop app — the device is visible during the run     |
| Running 40 tests before a release   | Cloud                                                  |
| Running one test across six devices | Cloud                                                  |
| Gating a build in CI                | Cloud, via a [test plan](/running-tests/test-plans.md) |
| Testing on hardware your org owns   | Cloud, on a private device                             |

## Device setup

{% tabs %}
{% tab title="Android" %}
**Emulator.** The [guided setup wizard](/desktop-app/device-setup-wizard.md) creates a Pixel 7 profile named **DrizzPhone** on an Android 14 (API 34) Google Play ARM64 image.

**Physical device:**

1. Enable **Developer options** and **USB debugging** on the device.
2. Connect the device by USB.
3. Accept the debugging prompt on the device.
4. Run `adb devices` and confirm it lists as `device`, not `unauthorized`.
5. Unlock the device. Drizz checks lock state and refuses a locked device.
   {% endtab %}

{% tab title="iOS" %}
**Simulator:**

1. Install Xcode and open it once to complete first-run setup.
2. Launch a simulator.
3. Select the simulator in Connect Device. Drizz builds and installs WebDriverAgent on first connect — one to two minutes the first time, cached afterwards.

**Physical iPhone or iPad**, from desktop app v1.8.0 on both Apple Silicon and Intel Macs:

1. Install Xcode on the Mac.
2. Connect the device by USB and trust the Mac when prompted.
3. Enable **Developer Mode** on the device: Settings → Privacy & Security → Developer Mode, then restart the device.
4. Select an **Apple development team** in the desktop app.
5. Trust the developer certificate: Settings → General → VPN & Device Management → your certificate → Trust.

Build requirements for physical hardware:

* A simulator-only build does not install on a physical device.
* An app installed from the App Store cannot be replaced by a sideloaded build of the same bundle ID. Uninstall the store version first.
* iOS test plans in the cloud require a real-device build.

{% hint style="warning" %}
**Free Apple developer accounts expire weekly.** Provisioning profiles from a free team last 7 days, and there's a cap on sideloaded apps. Use a paid Apple Developer account for anything beyond a trial.
{% endhint %}
{% endtab %}
{% endtabs %}

## Mobile web

Automated through a browser on a connected Android emulator or iOS simulator. The same commands apply; Drizz reads the rendered page visually rather than through the DOM.

## Host machine

The desktop app is a signed macOS `.dmg`, in Apple Silicon and Intel builds. See [Download & install](/desktop-app/download-and-install.md).

## Common mistakes

| What you do                                              | What happens                                                 |
| -------------------------------------------------------- | ------------------------------------------------------------ |
| Select a locked Android device                           | Drizz refuses the connection. Unlock the device first        |
| Install a simulator-only build on a physical iPhone      | Drizz warns you. The install fails. Use a real-device build  |
| Sideload over an App Store install of the same bundle ID | The install fails. Uninstall the store version first         |
| Run a free Apple developer team beyond 7 days            | The provisioning profile expires and the app stops launching |

## Next

* [Set up a device](/desktop-app/device-setup-wizard.md)
* [Devices: local, cloud & private](/running-tests/devices.md)
* [Known limitations](/reference/known-limitations.md)

***

*Last updated: 6 August 2026*
