diff --git a/advanced/visual-testing.md b/advanced/visual-testing.md index c0695e0..c450c3d 100644 --- a/advanced/visual-testing.md +++ b/advanced/visual-testing.md @@ -120,9 +120,9 @@ includedPaths: | The same with `--google-play` | `pixel-7-api-34-play` | | `--android-device generic-tablet --android-api-level 36` | `13-5in-freeform-api-36` | | `--ios-device iphone-16 --ios-version 18` | `iphone-16-ios-18` | -| `--ios-device ipad-pro-6th-gen --ios-version 26` | `ipad-pro-12-9-inch-6th-generation-ios-26` | +| `--ios-device iphone-17 --ios-version 26` | `iphone-17-ios-26` | -iPads use their full model name and the generic tablet its emulator profile, so the value isn't always your device flag. Print it once before you name your folders: add `- evalScript: ${console.log('DCD_DEVICE=' + DCD_DEVICE)}` to a flow and look for the `JsConsole` line in the run's Maestro log. +iPads use their full model name (`--ios-device ipad-pro-m5-13 --ios-version 26` is `ipad-pro-13-inch-m5-ios-26`) and the generic tablet its emulator profile, so the value isn't always your device flag. Print it once before you name your folders: add `- evalScript: ${console.log('DCD_DEVICE=' + DCD_DEVICE)}` to a flow and look for the `JsConsole` line in the run's Maestro log. `DCD_PLATFORM` (`android` or `ios`) is available too. Passing either yourself with `--env` overrides the built-in value. See [Built-in Variables](../configuration/environment-variables.md#built-in-variables). diff --git a/ci-cd/bitbucket-pipelines.md b/ci-cd/bitbucket-pipelines.md index 2abba1d..254d82a 100644 --- a/ci-cd/bitbucket-pipelines.md +++ b/ci-cd/bitbucket-pipelines.md @@ -50,7 +50,7 @@ Find your API key at [console.devicecloud.dev/settings](https://console.devicecl API_KEY: $DEVICE_CLOUD_API_KEY APP_FILE: 'build/MyApp.app.zip' WORKSPACE: '.maestro' - IOS_DEVICE: 'iphone-16-pro' + IOS_DEVICE: 'iphone-16' IOS_VERSION: '18' ``` diff --git a/ci-cd/eas-workflows.md b/ci-cd/eas-workflows.md index 834f649..77bb8c2 100644 --- a/ci-cd/eas-workflows.md +++ b/ci-cd/eas-workflows.md @@ -205,8 +205,8 @@ Anything you pass on the command line after `npx @devicecloud.dev/eas-workflow@v |------|-------------| | `--android-device ` | `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 ` | `32` – `37`. Default `36`. | -| `--ios-device ` | `iphone-14`, `iphone-15`, `iphone-16`, `iphone-16-plus`, `iphone-16-pro`, `iphone-16-pro-max`, `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-6th-gen`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. | -| `--ios-version ` | `17`, `18`, `26`, `27`. Default `17` (`26` from 2 November 2026). | +| `--ios-device ` | `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-version ` | `17` (deprecated), `18`, `26`, `27`. Default `26`. | | `--device-locale ` | E.g. `de_DE`. See [Device Locale](../configuration/device-locale.md). | | `--orientation ` | Android only. `0` or `90`. | | `--google-play` | Android only. Run on Google Play devices. | diff --git a/ci-cd/github-actions.md b/ci-cd/github-actions.md index 6ce751f..43db98a 100644 --- a/ci-cd/github-actions.md +++ b/ci-cd/github-actions.md @@ -110,8 +110,8 @@ 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-15`, `iphone-16`, `iphone-16-plus`, `iphone-16-pro`, `iphone-16-pro-max`, `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-6th-gen`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. | -| `ios-version` | No | `17` | Major iOS version. Options: `17`, `18`, `26`, `27`. Default becomes `26` from 2 November 2026. | +| `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-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. | diff --git a/configuration/device-matrix.md b/configuration/device-matrix.md index 8acb46f..09e4b47 100644 --- a/configuration/device-matrix.md +++ b/configuration/device-matrix.md @@ -14,9 +14,9 @@ Pass `--ios-device-matrix :` (or `--android-device-matrix ./flows \ - --ios-device-matrix iphone-16-pro:18 \ - --ios-device-matrix iphone-16-pro:26 \ - --ios-device-matrix iphone-16-pro-max:26 + --ios-device-matrix iphone-16:18 \ + --ios-device-matrix iphone-17:26 \ + --ios-device-matrix iphone-18-pro:27 # one upload, 3 devices x N flows ``` @@ -41,7 +41,7 @@ cross-product: the flags are not combined with each other, or with `--ios-device ```bash # runs exactly these two, and nothing else -dcd cloud [...] --ios-device-matrix iphone-15:17 --ios-device-matrix iphone-16-plus:26 +dcd cloud [...] --ios-device-matrix iphone-14:18 --ios-device-matrix iphone-air:26 ``` This is deliberate as not every device supports every OS. Naming each device explicitly means you always get diff --git a/configuration/environment-variables.md b/configuration/environment-variables.md index d0b3eec..a149868 100644 --- a/configuration/environment-variables.md +++ b/configuration/environment-variables.md @@ -66,7 +66,7 @@ DeviceCloud also sets these variables on every run, so a flow can adapt to the d | Variable | Value | | --- | --- | -| `DCD_DEVICE` | The device and OS version, lowercased and hyphenated — for example `pixel-8-api-34`, `pixel-8-api-34-play` on a Google Play device, `iphone-16-ios-18` or `ipad-pro-12-9-inch-6th-generation-ios-26`. | +| `DCD_DEVICE` | The device and OS version, lowercased and hyphenated — for example `pixel-8-api-34`, `pixel-8-api-34-play` on a Google Play device, `iphone-16-ios-18` or `iphone-17-ios-26`. | | `DCD_PLATFORM` | `android` or `ios`. | Passing your own value with `-e` overrides the built-in one. [Visual Testing](../advanced/visual-testing.md#per-device-baselines) uses `DCD_DEVICE` to pick a baseline per device. diff --git a/configuration/per-flow-devices.md b/configuration/per-flow-devices.md index 1ca08a9..ed619b5 100644 --- a/configuration/per-flow-devices.md +++ b/configuration/per-flow-devices.md @@ -20,7 +20,7 @@ Set the device in the flow's `env:` block. You can find a list of supported devi # checkout-tablet.yaml appId: my.app env: - DEVICECLOUD_OVERRIDE_IOS_DEVICE: ipad-pro-6th-gen + DEVICECLOUD_OVERRIDE_IOS_DEVICE: ipad-pro-m5-13 DEVICECLOUD_OVERRIDE_IOS_VERSION: "26" --- # test steps @@ -45,7 +45,7 @@ keeps the upload's iOS version, and vice versa. 1. `DEVICECLOUD_OVERRIDE_*` in the flow's YAML (per test) 2. The upload-wide `--ios-device` / `--ios-version` / `--android-device` / `--android-api-level` flags -3. Default: iPhone 14 on iOS 17, or Pixel 10 on API level 36 (see [Default Devices](../getting-started/devices-configuration.md#default-devices)) +3. Default: iPhone 16 on iOS 26, or Pixel 10 on API level 36 (see [Default Devices](../getting-started/devices-configuration.md#default-devices)) ## Billing diff --git a/getting-started/devices-configuration.md b/getting-started/devices-configuration.md index a654a0b..9891221 100644 --- a/getting-started/devices-configuration.md +++ b/getting-started/devices-configuration.md @@ -6,11 +6,7 @@ If you don't specify a device or OS version, then you will be allocated the defa **Android:** Pixel 10 (API level 36) -**iOS:** iPhone 14 (iOS 17) - -::: warning -On the 2nd November the default is moving to iPhone 16 on iOS 26. -::: +**iOS:** iPhone 16 (iOS 26) ### Android API Levels @@ -69,58 +65,59 @@ Pixel 6 Pro, Pixel 7 Pro and Generic Tablet on API level 33 were removed on 26 O ### iOS Versions -DeviceCloud will default to iOS 17 unless you pass the `--ios-version` flag. Pair it with an `--ios-device` that runs that version (see [iOS Devices](devices-configuration.md#ios-devices)), as the default iPhone 14 only runs iOS 17 and 18: +DeviceCloud will default to iOS 26 unless you pass the `--ios-version` flag. The default iPhone 16 runs iOS 18, 26 and 27, so a run that sets only the version runs on iPhone 16. To run that version on another device, pass an `--ios-device` that runs it as well (see [iOS Devices](devices-configuration.md#ios-devices)): ```bash -dcd cloud app.zip test.yaml --ios-device iphone-16 --ios-version 27 +dcd cloud app.zip test.yaml --ios-device iphone-17 --ios-version 27 ``` -::: warning -The default version of iOS is changing to 26 on the 2nd November. -::: - -| id | Version | -| ---- | ----------------- | +| id | Version | +| ---- | ----------------------------- | | `27` | 27.0 (27.1 on the iPhone Duo) | -| `26` | 26.5 | -| `18` | 18.6 | -| `17` | 17.5 (deprecated) | +| `26` | 26.5 | +| `18` | 18.6 | +| `17` | 17.5 (deprecated) | + +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 2nd November. This date is subject to change based on usage. +iOS 17 is deprecated and we're targeting removal on the 9th November. This date is subject to change based on usage. ::: ### iOS Devices -DeviceCloud will default to iPhone 14 unless you pass the `--ios-device` flag. Pass `--ios-version` with it, choosing one of the versions in the device's row: +DeviceCloud will default to iPhone 16 unless you pass the `--ios-device` flag. Pass `--ios-version` with it, choosing one of the versions in the device's row: ```bash dcd cloud app.zip test.yaml --ios-device ipad-pro-m5-13 --ios-version 26 ``` -| 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-plus` | iPhone 16 Plus (deprecated) | 1290 x 2796 | 26, 27 | -| `iphone-16` | iPhone 16 | 1179 x 2556 | 18, 26, 27 | -| `iphone-15` | iPhone 15 (deprecated) | 1179 x 2556 | 17 | -| `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-pro-6th-gen` | iPad Pro (6th Generation) (deprecated) | 2048 x 2732 | 18, 26, 27 | +::: info +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 | iPad and iPhone Duo runs are billed at the Advanced iOS rate, see [pricing](../billing/test-run-billing.md). ::: warning -iPhone 15, iPhone 16 Plus, iPhone 16 Pro, iPhone 16 Pro Max and iPad Pro (6th Generation) are deprecated and we're targeting removal on the 2nd November. This date is subject to change based on usage. +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 15, iPhone 16 Plus and iPad Pro (6th Generation) were removed on 2 November 2026. + #### Foldables The iPhone Duo starts folded, on its cover screen, and the Pixel 10 Pro Fold starts unfolded. A flow can fold or unfold either part-way through a run, and tap or take screenshots on whichever screen is active. See [Foldable Devices](../configuration/foldable-devices.md). @@ -164,7 +161,7 @@ We will always aim to support the latest versions of iOS and additionally contin It may be possible in some cases to provide support for a beta version however this will be on a case-by-case basis; please contact our Support team if you would like to request this. -The default configuration will always be the latest even-numbered base iPhone we support running the previous version of iOS, i.e. iPhone 16 running iOS 26. Before we change the default, we will always provide a minimum of 30 days notice. The default becomes iPhone 16 / iOS 26 on 2 November 2026. +The default configuration will always be the latest even-numbered base iPhone we support running the previous version of iOS, i.e. iPhone 16 running iOS 26. Before we change the default, we will always provide a minimum of 30 days notice. The default has been iPhone 16 / iOS 26 since 2 November 2026. ### Android Support Policy diff --git a/mcp/tools.md b/mcp/tools.md index 738790f..bdcd99d 100644 --- a/mcp/tools.md +++ b/mcp/tools.md @@ -70,8 +70,8 @@ This tool consumes test credits. It's annotated as destructive so clients can pr | `flowFile` | string | **Required.** Path to a Maestro `.yaml`/`.yml` flow, or a directory of flows | | `appFile` | string | Path to a local app binary — `.apk`, `.app`, or `.zip`. Mutually exclusive with `appBinaryId` | | `appBinaryId` | string | ID of a previously uploaded binary. Mutually exclusive with `appFile` | -| `iosVersion` | string | iOS version, e.g. `17` | -| `iosDevice` | string | iOS device, e.g. `iphone-14` | +| `iosVersion` | string | iOS version, e.g. `26` | +| `iosDevice` | string | iOS device, e.g. `iphone-16` | | `androidApiLevel` | string | Android API level, e.g. `34` | | `androidDevice` | string | Android device, e.g. `pixel-10` | | `googlePlay` | boolean | Use a [Google Play-enabled](../configuration/google-play-apis.md) Android image |