Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ For most projects, yes. The CLI mimics the Maestro Cloud API, so you change `mae

### How much does it cost?

DeviceCloud bills per test run i.e. a single top-level flow on a single device and are charged at $0.11 for standard iOS and $0.09 for standard Android. iPad, iPhone Duo, Pixel 10 Pro Fold, Google Play, tablet and `m4`, `m1` and `gpu1` (deprecated) runner flows are charged at the advanced rate of $0.15. New accounts get $20 of free credits. The Pro and Max plans include a set amount of usage each month, and usage beyond that is billed as [overage](billing/overage.md), up to a limit you control. See [Test Run Billing](billing/test-run-billing.md).
DeviceCloud bills per test run i.e. a single top-level flow on a single device and are charged at $0.11 for standard iOS and $0.09 for standard Android. iPad, iPhone Duo, Pixel 10 Pro Fold, Google Play, tablet and `m4` and `m1` runner flows are charged at the advanced rate of $0.15. New accounts get $20 of free credits. The Pro and Max plans include a set amount of usage each month, and usage beyond that is billed as [overage](billing/overage.md), up to a limit you control. See [Test Run Billing](billing/test-run-billing.md).

### How many tests can I run in parallel?

Expand Down
2 changes: 1 addition & 1 deletion billing/test-run-billing.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Details of charges made to your account can be found on the [billing page](https
| Standard iOS | Any iPhone device (except the iPhone Duo) on our default [runner type](../configuration/runner-type.md) | $0.11 |
| Advanced iOS | Any runs on our `m4` [runner type](../configuration/runner-type.md), and any iPad or iPhone Duo runs (on either runner). | $0.15 |
| Standard Android | Any non-Play Pixel phone (except the Pixel 10 Pro Fold) on our cpu1 [runner type](../configuration/runner-type.md) | $0.09 |
| Advanced Android | Any runs on our `m1` and `gpu1` (deprecated) [runner types](../configuration/runner-type.md), and any Tablet, Pixel 10 Pro Fold or Play device runs | $0.15 |
| Advanced Android | Any runs on our `m1` [runner type](../configuration/runner-type.md), and any Tablet, Pixel 10 Pro Fold or Play device runs | $0.15 |

::: info
Enterprise customers with volume discounts or grandfathered users with older pricing may have different pricing. You can view your account's test run cost in the [billing page](https://console.devicecloud.dev/billing)
Expand Down
2 changes: 1 addition & 1 deletion ci-cd/bitbucket-pipelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ Most pipe variables map to the [`dcd cloud`](../cli/dcd-cloud.md) CLI flag of th
| `ASYNC` | `"true"` to fire-and-forget. |
| `CANCEL_PREVIOUS` | `"true"` to cancel the previous run's still-queued tests when this one starts (from pipe 1.5.0). See [Cancelling superseded runs](../advanced/cancel-previous.md). |
| `PRIORITY` | `low`, `normal` (default) or `high` (from pipe 1.6.0). Reorders only your organisation's own queued runs, see [Run Priority](../configuration/run-priority.md). |
| `RUNNER_TYPE` | `default`, `cpu1`, `gpu1` (deprecated), `m1` or `m4`. `gpu1`, `m1` and `m4` are premium runners, see [Runner Type](../configuration/runner-type.md). |
| `RUNNER_TYPE` | `default`, `cpu1`, `m1` or `m4`. `m1` and `m4` are premium runners, see [Runner Type](../configuration/runner-type.md). |
| `RENDER_ENGINE` | Android only: `lavapipe` or `swiftshader`, the software renderer the emulator boots with on the default Android runner. Leave unset to let DeviceCloud choose (`swiftshader` for apps built with Flutter, otherwise `lavapipe`). |

## Bitbucket context auto-attached
Expand Down
4 changes: 2 additions & 2 deletions ci-cd/eas-workflows.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,12 +205,12 @@ Anything you pass on the command line after `npx @devicecloud.dev/eas-workflow@v
|------|-------------|
| `--android-device <model>` | `pixel-6`, `pixel-7` (deprecated), `pixel-8`, `pixel-10`, `pixel-10-pro`, `pixel-10-pro-xl`, `pixel-10-pro-fold`, `pixel-11`, `generic-tablet`. Default `pixel-10`. |
| `--android-api-level <n>` | `32` – `37`. Default `36`. |
| `--ios-device <model>` | `iphone-14`, `iphone-16`, `iphone-16-pro` (deprecated), `iphone-16-pro-max` (deprecated), `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. |
| `--ios-device <model>` | `iphone-14`, `iphone-16`, `iphone-16-pro` (deprecated), `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. |
| `--ios-version <n>` | `17` (deprecated), `18`, `26`, `27`. Default `26`. |
| `--device-locale <code>` | E.g. `de_DE`. See [Device Locale](../configuration/device-locale.md). |
| `--orientation <deg>` | Android only. `0` or `90`. |
| `--google-play` | Android only. Run on Google Play devices. |
| `--runner-type <type>` | `default`, `cpu1`, `gpu1` (deprecated), `m1`, `m4`. `gpu1`, `m1` and `m4` incur premium pricing. See [Runner Types](../configuration/runner-type.md). |
| `--runner-type <type>` | `default`, `cpu1`, `m1`, `m4`. `m1` and `m4` incur premium pricing. See [Runner Types](../configuration/runner-type.md). |

See the [Devices & OS Versions](../getting-started/devices-configuration.md) page for the full availability matrix.

Expand Down
4 changes: 2 additions & 2 deletions ci-cd/github-actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,12 @@ If you build with EAS, download the build artifact in an earlier step and pass t
|-------|----------|---------|-------------|
| `android-device` | No | `pixel-10` | Android device model. Options: `pixel-6`, `pixel-7` (deprecated), `pixel-8`, `pixel-10`, `pixel-10-pro`, `pixel-10-pro-xl`, `pixel-10-pro-fold`, `pixel-11`, `generic-tablet`. |
| `android-api-level` | No | `36` | Android API level. Options: `32`, `33`, `34`, `35`, `36`, `37`. |
| `ios-device` | No | — | iOS device model. Options: `iphone-14`, `iphone-16`, `iphone-16-pro` (deprecated), `iphone-16-pro-max` (deprecated), `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. |
| `ios-device` | No | — | iOS device model. Options: `iphone-14`, `iphone-16`, `iphone-16-pro` (deprecated), `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. |
| `ios-version` | No | `26` | Major iOS version. Options: `17` (deprecated), `18`, `26`, `27`. |
| `device-locale` | No | — | Device locale in `ISO-639-1_ISO-3166-1` format (e.g. `de_DE`). See [Device Locale](../configuration/device-locale.md). |
| `orientation` | No | `0` | Android only. Device orientation in degrees. Options: `0`, `90`. |
| `google-play` | No | `false` | Android only. Run flows against Google Play devices. |
| `runner-type` | No | `default` | Runner type. Options: `default`, `cpu1`, `gpu1` (deprecated), `m1`, `m4`. `gpu1`, `m1` and `m4` incur premium pricing. See [Runner Types](../configuration/runner-type.md). |
| `runner-type` | No | `default` | Runner type. Options: `default`, `cpu1`, `m1`, `m4`. `m1` and `m4` incur premium pricing. See [Runner Types](../configuration/runner-type.md). |

See the [Devices & OS Versions](../getting-started/devices-configuration.md) page for the full availability matrix.

Expand Down
6 changes: 3 additions & 3 deletions configuration/google-play-apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ Google Play APIs are available on these devices:
| `pixel-10` | `36`, `37` |
| `pixel-7` (deprecated) | `34` |

Pixel 7 is targeted for removal on 9 November 2026, subject to change based on usage, so move Google Play runs to `pixel-8` (to stay on API 34) or `pixel-10`.
Pixel 7 is targeted for removal on 23 November 2026, subject to change based on usage, so move Google Play runs to `pixel-8` (to stay on API 34) or `pixel-10`.

On the `m1` [runner type](runner-type.md), Google Play is available on `pixel-8` (API `34`) and `pixel-10` (API `36`, `37`). It isn't available on `gpu1`.
On the `m1` [runner type](runner-type.md), Google Play is available on `pixel-8` (API `34`) and `pixel-10` (API `36`, `37`).

Pass the device and API level together on Google Play runs:

Expand Down Expand Up @@ -95,7 +95,7 @@ env:
### What to check

* **arm64-v8a native code.** The `m1` emulators run arm64-v8a code only. If your APK ships native libraries, it must include arm64-v8a ones. A build cut down to `x86_64` for emulators won't install, so DeviceCloud rejects `m1` runs for it with an error saying so. Builds with no native code run as they are.
* **Devices.** Google Play on `m1` runs on `pixel-8` (API `34`) and `pixel-10` (API `36`, `37`). Pixel 7 isn't offered on `m1`, because it is removed on 9 November 2026.
* **Devices.** Google Play on `m1` runs on `pixel-8` (API `34`) and `pixel-10` (API `36`, `37`). Pixel 7 isn't offered on `m1`, because its removal is targeted for 23 November 2026.
* **Concurrency.** Google Play runs on `m1` count towards your `m1` limit, not your `cpu1` limit. [Concurrency Protection](../getting-started/concurrency-and-parallel-runs.md) doesn't cover `m1`.

Google Play images work the same way on both runner types: they come with Google Play Services and the Play Store, the price is the same, and they can't be rooted, so the [device date and time override](device-datetime.md) isn't applied.
Expand Down
2 changes: 1 addition & 1 deletion configuration/maestro-versions.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ We currently support the following versions of Maestro:
* 2.12.1

::: warning
Maestro 2.2.0 is deprecated and we're targeting removal on 9 November 2026. This date is subject to change based on usage. If you pin `--maestro-version` to 2.2.0, move it to 2.6.1 or newer (the default is 2.10.0). See the [Maestro Support Policy](maestro-versions.md#maestro-support-policy) for more information.
Maestro 2.2.0 is deprecated and we're targeting removal on 23 November 2026. This date is subject to change based on usage. If you pin `--maestro-version` to 2.2.0, move it to 2.6.1 or newer (the default is 2.10.0). See the [Maestro Support Policy](maestro-versions.md#maestro-support-policy) for more information.
:::

Maestro 2.0.4, 2.0.9, 2.1.0, 2.5.0, 2.5.1 and 2.6.0 were removed on 19 October 2026. Runs pinned to these versions are rejected.
Expand Down
2 changes: 1 addition & 1 deletion configuration/per-flow-devices.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ iPhone upload charges that one flow at the advanced rate, and the rest at the st

- You cannot target across platforms in the same upload.

- On the `m1` and `gpu1` [runner types](runner-type.md), a flow's device must be on API level 34 or above (up to 37 on `m1`). Google Play is available on `m1` only, on `pixel-8` (API 34) and `pixel-10` (API 36, 37). Generic Tablet isn't available on them.
- On the `m1` [runner type](runner-type.md), a flow's device must be on API level 34 to 37. Google Play is available only on `pixel-8` (API 34) and `pixel-10` (API 36, 37), and Generic Tablet isn't available.

## Running a suite across several devices

Expand Down
13 changes: 6 additions & 7 deletions configuration/runner-type.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,10 @@ If your app or test is struggling with the default runner types, you can try the
| ----------- | -------- | ------- | ------------ | ----- | --------- | ----- |
| `m4` | iOS | MacOS | M4 | 16 GB | 10 | |
| `m1` | Android | MacOS | M1 | 8 GB | 8 | Apple Silicon (arm64). Runs Google Play from 14 December 2026. |
| `gpu1` | Android | Ubuntu | x86 | 15 GB | 8 | Deprecated. Limited capacity. Additional GPU acceleration also provided. |

::: warning
`gpu1` is deprecated and **will be removed on 9 November 2026**. From that date, runs that pass `--runner-type gpu1` will run on `cpu1` instead, at the standard Android rate, rather than failing. To move now, stop passing `--runner-type gpu1` (Android runs use `cpu1` by default) or pass `--runner-type cpu1`. See the [Runner Type Support Policy](#runner-type-support-policy) for more information.
:::|
The `gpu1` runner type was removed on 9 November 2026. Android runs that still pass `--runner-type gpu1`, or set it with `DEVICECLOUD_OVERRIDE_RUNNER_TYPE`, run on `cpu1` instead, billed at the standard Android rate. They don't fail. On iOS, `gpu1` is still rejected. Stop passing `gpu1`: Android runs use `cpu1` by default, or you can pass `--runner-type cpu1`. See the [Runner Type Support Policy](#runner-type-support-policy) for more information.
:::

::: info
**Google Play runs move to `m1` on 14 December 2026.** From that date every Google Play run uses `m1` rather than `cpu1`, at the same price. To test your app on `m1` now, add `--runner-type m1` to your Google Play runs. See [Moving to Apple Silicon](google-play-apis.md#moving-to-apple-silicon-m1).
Expand All @@ -41,11 +40,11 @@ If your app or test is struggling with the default runner types, you can try the
### Limitations

* `m4` is iOS only. Choosing it for an Android app is rejected.
* `cpu1`, `m1` and `gpu1` are Android only. On iOS, `m1` is treated as `default` (with a warning), and `cpu1` and `gpu1` are rejected.
* On `m1` and `gpu1`, every flow must run on API level 34 or above (up to 37 on `m1`). This includes devices chosen per flow or in a [device matrix](device-matrix.md).
* Google Play is available on `m1` on `pixel-8` (API 34) and `pixel-10` (API 36, 37), and not on `gpu1`. See [Google Play APIs](google-play-apis.md#device-availability).
* `cpu1` and `m1` are Android only. On iOS, `m1` is treated as `default` (with a warning), and `cpu1` is rejected.
* On `m1`, every flow must run on API level 34 to 37. This includes devices chosen per flow or in a [device matrix](device-matrix.md).
* Google Play is available on `m1` on `pixel-8` (API 34) and `pixel-10` (API 36, 37). See [Google Play APIs](google-play-apis.md#device-availability).
* `m1` runs arm64-v8a code only. An APK with native libraries must include arm64-v8a ones, otherwise the run is rejected.
* Generic Tablet isn't available on `m1` or `gpu1`, so don't select it with those runner types.
* Generic Tablet isn't available on `m1`, so don't select it with that runner type.

### Usage

Expand Down
10 changes: 5 additions & 5 deletions getting-started/concurrency-and-parallel-runs.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ Limits are set per platform and [runner type](../configuration/runner-type.md).

The plans come with these limits:

| Plan | iOS `default` | iOS `m4` | Android `cpu1` (default) | Android `gpu1` (deprecated) | Android `m1` |
|------|---------------|----------|--------------------------|----------------|--------------|
| Pro | up to 5 | up to 5 | up to 5 | up to 2 | up to 5 |
| Max | up to 20, with 1 protected | up to 5 | up to 20, with 1 protected | up to 2 | up to 20 |
| Plan | iOS `default` | iOS `m4` | Android `cpu1` (default) | Android `m1` |
|------|---------------|----------|--------------------------|--------------|
| Pro | up to 5 | up to 5 | up to 5 | up to 5 |
| Max | up to 20, with 1 protected | up to 5 | up to 20, with 1 protected | up to 20 |

::: warning
The `gpu1` runner type is deprecated and will be removed on 9 November 2026, after which its runs use `cpu1` and count towards the `cpu1` limit. See [Runner Type](../configuration/runner-type.md).
The `gpu1` runner type was removed on 9 November 2026. Runs that still pass it run on `cpu1` and count towards the `cpu1` limit. See [Runner Type](../configuration/runner-type.md).
:::

::: info
Expand Down
33 changes: 17 additions & 16 deletions getting-started/devices-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ Generic Tablet and Pixel 10 Pro Fold runs are billed at the Advanced Android rat
The Pixel 10 Pro Fold starts unfolded; a flow can fold it, see [Foldable Devices](../configuration/foldable-devices.md).

::: warning
Pixel 7 is deprecated and we're targeting removal on the 9th November. This date is subject to change based on usage.
Pixel 7 is deprecated and we're targeting removal on 23 November 2026. This date is subject to change based on usage.
:::

Pixel 6 Pro, Pixel 7 Pro and Generic Tablet on API level 33 were removed on 26 October 2026.
Expand All @@ -85,7 +85,7 @@ dcd cloud app.zip test.yaml --ios-device iphone-17 --ios-version 27
iOS 17 runs only on iPhone 14, so pass `--ios-device iphone-14` with `--ios-version 17`.

::: warning
iOS 17 is deprecated and we're targeting removal on the 9th November. This date is subject to change based on usage.
iOS 17 is deprecated and we're targeting removal on 23 November 2026. This date is subject to change based on usage.
:::

### iOS Devices
Expand All @@ -100,26 +100,27 @@ dcd cloud app.zip test.yaml --ios-device ipad-pro-m5-13 --ios-version 26
A run that sets only the device runs on iOS 26, so a device that doesn't offer iOS 26 needs `--ios-version` as well, for example `--ios-device iphone-14` with `--ios-version 17` or `18`, or `--ios-device iphone-18-pro --ios-version 27`. Without it, the run is rejected.
:::

| id | Name | Dimensions | Valid iOS versions |
| ------------------- | ------------------------------ | ----------- | ------------------ |
| `iphone-duo` | iPhone Duo (starts folded) | 1398 x 2034 | 27 |
| `iphone-18-pro-max` | iPhone 18 Pro Max | 1320 x 2868 | 27 |
| `iphone-18-pro` | iPhone 18 Pro | 1206 x 2622 | 27 |
| `iphone-air` | iPhone Air | 1260 x 2736 | 26, 27 |
| `iphone-17` | iPhone 17 | 1206 x 2622 | 26, 27 |
| `iphone-16-pro-max` | iPhone 16 Pro Max (deprecated) | 1320 x 2868 | 18, 26, 27 |
| `iphone-16-pro` | iPhone 16 Pro (deprecated) | 1206 x 2622 | 18, 26, 27 |
| `iphone-16` | iPhone 16 | 1179 x 2556 | 18, 26, 27 |
| `iphone-14` | iPhone 14 | 1170 x 2532 | 17, 18 |
| `ipad-pro-m5-13` | iPad Pro 13-inch (M5) | 2064 x 2752 | 26, 27 |
| `ipad-pro-m5-11` | iPad Pro 11-inch (M5) | 1668 x 2420 | 26, 27 |
| id | Name | Dimensions | Valid iOS versions |
| ------------------- | -------------------------- | ----------- | ------------------ |
| `iphone-duo` | iPhone Duo (starts folded) | 1398 x 2034 | 27 |
| `iphone-18-pro-max` | iPhone 18 Pro Max | 1320 x 2868 | 27 |
| `iphone-18-pro` | iPhone 18 Pro | 1206 x 2622 | 27 |
| `iphone-air` | iPhone Air | 1260 x 2736 | 26, 27 |
| `iphone-17` | iPhone 17 | 1206 x 2622 | 26, 27 |
| `iphone-16-pro` | iPhone 16 Pro (deprecated) | 1206 x 2622 | 18, 26, 27 |
| `iphone-16` | iPhone 16 | 1179 x 2556 | 18, 26, 27 |
| `iphone-14` | iPhone 14 | 1170 x 2532 | 17, 18 |
| `ipad-pro-m5-13` | iPad Pro 13-inch (M5) | 2064 x 2752 | 26, 27 |
| `ipad-pro-m5-11` | iPad Pro 11-inch (M5) | 1668 x 2420 | 26, 27 |

iPad and iPhone Duo runs are billed at the Advanced iOS rate, see [pricing](../billing/test-run-billing.md).

::: warning
iPhone 16 Pro and iPhone 16 Pro Max are deprecated and we're targeting removal on the 9th November. This date is subject to change based on usage.
iPhone 16 Pro is deprecated and we're targeting removal on 7 December 2026; this is subject to change based on usage. Runs that target it will be rejected once it's removed, so move them to `iphone-16` (the default), `iphone-17`, `iphone-air`, `iphone-18-pro` or `iphone-18-pro-max`.
:::

iPhone 16 Pro Max was removed on 9 November 2026, and runs that target it are rejected. Move them to `iphone-16` (the default), `iphone-17`, `iphone-air`, `iphone-18-pro` or `iphone-18-pro-max`. `iphone-18-pro` and `iphone-18-pro-max` run iOS 27 only, so pass `--ios-version 27` with them.

iPhone 15, iPhone 16 Plus and iPad Pro (6th Generation) were removed on 2 November 2026.

#### Foldables
Expand Down
2 changes: 1 addition & 1 deletion mcp/tools.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ This tool consumes test credits. It's annotated as destructive so clients can pr
| `excludeFlows` | string[] | Flow paths/patterns to exclude |
| `maestroVersion` | string | Pin a specific [Maestro version](../configuration/maestro-versions.md) |
| `retry` | integer | Auto-[retry](../advanced/retry-strategies.md) failed tests, 0–2 |
| `runnerType` | `default` \| `m4` \| `m1` \| `gpu1` (deprecated) \| `cpu1` | [Runner type](../configuration/runner-type.md) (default `default`). |
| `runnerType` | `default` \| `m4` \| `m1` \| `cpu1` | [Runner type](../configuration/runner-type.md) (default `default`). |
| `priority` | `low` \| `normal` \| `high` | [Run priority](../configuration/run-priority.md) (default `normal`). Reorders only your organisation's own queued runs. |
| `configFile` | string | Path to a [workspace config](../configuration/workspace-config.md) |
| `ignoreShaCheck` | boolean | Force re-upload of the binary even if an identical one already exists |
Expand Down
Loading