From c722ab2b2374e800f63707ffb79d13fd36cad066 Mon Sep 17 00:00:00 2001 From: finalerock44 Date: Mon, 2 Nov 2026 11:37:14 +0000 Subject: [PATCH 1/2] docs: remove iOS 17, iPhone 15, iPhone 16 Plus/Pro/Pro Max and iPad Pro 6th gen; the iOS default is iPhone 16 / iOS 26 --- advanced/visual-testing.md | 4 +- ci-cd/bitbucket-pipelines.md | 2 +- ci-cd/eas-workflows.md | 4 +- ci-cd/github-actions.md | 4 +- configuration/device-matrix.md | 8 +-- configuration/environment-variables.md | 2 +- configuration/per-flow-devices.md | 4 +- getting-started/devices-configuration.md | 66 ++++++++++-------------- mcp/tools.md | 4 +- 9 files changed, 42 insertions(+), 56 deletions(-) diff --git a/advanced/visual-testing.md b/advanced/visual-testing.md index c2264fc..d480c40 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 24c76c9..c311e35 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 c8164d3..2ff3015 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-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. | +| `--ios-version ` | `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 e45bdb9..9f878a1 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-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: `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 a05d0f8..a0503c1 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) - -{% hint style="warning" %} -On the 2nd November the default is moving to iPhone 16 on iOS 26. -{% endhint %} +**iOS:** iPhone 16 (iOS 26) ### Android API Levels @@ -69,57 +65,47 @@ 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 ``` -{% hint style="warning" %} -The default version of iOS is changing to 26 on the 2nd November. -{% endhint %} - -| 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 | -{% hint style="warning" %} -iOS 17 is deprecated and we're targeting removal on the 2nd November. This date is subject to change based on usage. -{% endhint %} +iOS 17 was removed on 2 November 2026. ### 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 | +{% hint style="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 --ios-version 18` or `--ios-device iphone-18-pro --ios-version 27`. Without it, the run is rejected. +{% endhint %} + +| 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` | iPhone 16 | 1179 x 2556 | 18, 26, 27 | +| `iphone-14` | iPhone 14 | 1170 x 2532 | 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). -{% hint style="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. -{% endhint %} +iPhone 15, iPhone 16 Plus, iPhone 16 Pro, iPhone 16 Pro Max and iPad Pro (6th generation) were removed on 2 November 2026. #### Foldables @@ -164,7 +150,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 a424e19..2205d83 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 | From 10006adccc29122c43246e950c302cd90bd11811 Mon Sep 17 00:00:00 2001 From: finalerock44 Date: Mon, 2 Nov 2026 13:25:36 +0000 Subject: [PATCH 2/2] docs: keep iOS 17, iPhone 16 Pro and 16 Pro Max as deprecated until 9 November A usage check found that iOS 17, iPhone 16 Pro and iPhone 16 Pro Max each still carry 1% or more of 7-day usage, so under the support policy they are not removed today. They are deprecated, with removal targeted for 9 November 2026, subject to change based on usage. iPhone 15, iPhone 16 Plus and iPad Pro (6th Generation) were removed on 2 November 2026, and the iOS default is still iPhone 16 / iOS 26 from today. - Devices & OS Versions: the 17 row is back as 17.5 (deprecated), with a note that it runs only on iPhone 14 and a deprecation hint; the iPhone 16 Pro and 16 Pro Max rows are back as before, marked deprecated, with their own hint; iPhone 14 offers 17 and 18 again. The removal sentence names only the three devices that went. - GitHub Actions and EAS Workflows: the option lists include iphone-16-pro, iphone-16-pro-max and 17 again, marked deprecated like pixel-7. The ios-version default stays 26. Examples that the previous commit moved onto current devices stay there, so none of them points at a deprecated device. --- ci-cd/eas-workflows.md | 4 +-- ci-cd/github-actions.md | 4 +-- getting-started/devices-configuration.md | 39 +++++++++++++++--------- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/ci-cd/eas-workflows.md b/ci-cd/eas-workflows.md index 2ff3015..ad47411 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-16`, `iphone-17`, `iphone-air`, `iphone-18-pro`, `iphone-18-pro-max`, `iphone-duo`, `ipad-pro-m5-11`, `ipad-pro-m5-13`. | -| `--ios-version ` | `18`, `26`, `27`. Default `26`. | +| `--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 9f878a1..0d73ce3 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-16`, `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: `18`, `26`, `27`. | +| `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/getting-started/devices-configuration.md b/getting-started/devices-configuration.md index a0503c1..5d1ee62 100644 --- a/getting-started/devices-configuration.md +++ b/getting-started/devices-configuration.md @@ -76,8 +76,13 @@ dcd cloud app.zip test.yaml --ios-device iphone-17 --ios-version 27 | `27` | 27.0 (27.1 on the iPhone Duo) | | `26` | 26.5 | | `18` | 18.6 | +| `17` | 17.5 (deprecated) | -iOS 17 was removed on 2 November 2026. +iOS 17 runs only on iPhone 14, so pass `--ios-device iphone-14` with `--ios-version 17`. + +{% hint style="warning" %} +iOS 17 is deprecated and we're targeting removal on the 9th November. This date is subject to change based on usage. +{% endhint %} ### iOS Devices @@ -88,24 +93,30 @@ dcd cloud app.zip test.yaml --ios-device ipad-pro-m5-13 --ios-version 26 ``` {% hint style="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 --ios-version 18` or `--ios-device iphone-18-pro --ios-version 27`. Without it, the run is rejected. +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. {% endhint %} -| 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` | iPhone 16 | 1179 x 2556 | 18, 26, 27 | -| `iphone-14` | iPhone 14 | 1170 x 2532 | 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-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). -iPhone 15, iPhone 16 Plus, iPhone 16 Pro, iPhone 16 Pro Max and iPad Pro (6th generation) were removed on 2 November 2026. +{% hint style="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. +{% endhint %} + +iPhone 15, iPhone 16 Plus and iPad Pro (6th Generation) were removed on 2 November 2026. #### Foldables