Skip to content

Commit dcf736f

Browse files
authored
docs: iOS/iPhone removals 2026 11 02 (#153)
* 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 * 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.
1 parent 60eb865 commit dcf736f

9 files changed

Lines changed: 49 additions & 52 deletions

File tree

‎advanced/visual-testing.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,9 +120,9 @@ includedPaths:
120120
| The same with `--google-play` | `pixel-7-api-34-play` |
121121
| `--android-device generic-tablet --android-api-level 36` | `13-5in-freeform-api-36` |
122122
| `--ios-device iphone-16 --ios-version 18` | `iphone-16-ios-18` |
123-
| `--ios-device ipad-pro-6th-gen --ios-version 26` | `ipad-pro-12-9-inch-6th-generation-ios-26` |
123+
| `--ios-device iphone-17 --ios-version 26` | `iphone-17-ios-26` |
124124

125-
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.
125+
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.
126126

127127
`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).
128128

‎ci-cd/bitbucket-pipelines.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Find your API key at [console.devicecloud.dev/settings](https://console.devicecl
5050
API_KEY: $DEVICE_CLOUD_API_KEY
5151
APP_FILE: 'build/MyApp.app.zip'
5252
WORKSPACE: '.maestro'
53-
IOS_DEVICE: 'iphone-16-pro'
53+
IOS_DEVICE: 'iphone-16'
5454
IOS_VERSION: '18'
5555
```
5656

‎ci-cd/eas-workflows.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -205,8 +205,8 @@ Anything you pass on the command line after `npx @devicecloud.dev/eas-workflow@v
205205
|------|-------------|
206206
| `--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`. |
207207
| `--android-api-level <n>` | `32` – `37`. Default `36`. |
208-
| `--ios-device <model>` | `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`. |
209-
| `--ios-version <n>` | `17`, `18`, `26`, `27`. Default `17` (`26` from 2 November 2026). |
208+
| `--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`. |
209+
| `--ios-version <n>` | `17` (deprecated), `18`, `26`, `27`. Default `26`. |
210210
| `--device-locale <code>` | E.g. `de_DE`. See [Device Locale](../configuration/device-locale.md). |
211211
| `--orientation <deg>` | Android only. `0` or `90`. |
212212
| `--google-play` | Android only. Run on Google Play devices. |

‎ci-cd/github-actions.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,8 @@ If you build with EAS, download the build artifact in an earlier step and pass t
110110
|-------|----------|---------|-------------|
111111
| `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`. |
112112
| `android-api-level` | No | `36` | Android API level. Options: `32`, `33`, `34`, `35`, `36`, `37`. |
113-
| `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`. |
114-
| `ios-version` | No | `17` | Major iOS version. Options: `17`, `18`, `26`, `27`. Default becomes `26` from 2 November 2026. |
113+
| `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`. |
114+
| `ios-version` | No | `26` | Major iOS version. Options: `17` (deprecated), `18`, `26`, `27`. |
115115
| `device-locale` | No | — | Device locale in `ISO-639-1_ISO-3166-1` format (e.g. `de_DE`). See [Device Locale](../configuration/device-locale.md). |
116116
| `orientation` | No | `0` | Android only. Device orientation in degrees. Options: `0`, `90`. |
117117
| `google-play` | No | `false` | Android only. Run flows against Google Play devices. |

‎configuration/device-matrix.md‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ Pass `--ios-device-matrix <device>:<version>` (or `--android-device-matrix <devi
1414

1515
```bash
1616
dcd cloud --app-binary-id <id> ./flows \
17-
--ios-device-matrix iphone-16-pro:18 \
18-
--ios-device-matrix iphone-16-pro:26 \
19-
--ios-device-matrix iphone-16-pro-max:26
17+
--ios-device-matrix iphone-16:18 \
18+
--ios-device-matrix iphone-17:26 \
19+
--ios-device-matrix iphone-18-pro:27
2020
# one upload, 3 devices x N flows
2121
```
2222

@@ -41,7 +41,7 @@ cross-product: the flags are not combined with each other, or with `--ios-device
4141

4242
```bash
4343
# runs exactly these two, and nothing else
44-
dcd cloud [...] --ios-device-matrix iphone-15:17 --ios-device-matrix iphone-16-plus:26
44+
dcd cloud [...] --ios-device-matrix iphone-14:18 --ios-device-matrix iphone-air:26
4545
```
4646

4747
This is deliberate as not every device supports every OS. Naming each device explicitly means you always get

‎configuration/environment-variables.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ DeviceCloud also sets these variables on every run, so a flow can adapt to the d
6666

6767
| Variable | Value |
6868
| --- | --- |
69-
| `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`. |
69+
| `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`. |
7070
| `DCD_PLATFORM` | `android` or `ios`. |
7171

7272
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.

‎configuration/per-flow-devices.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ Set the device in the flow's `env:` block. You can find a list of supported devi
2020
# checkout-tablet.yaml
2121
appId: my.app
2222
env:
23-
DEVICECLOUD_OVERRIDE_IOS_DEVICE: ipad-pro-6th-gen
23+
DEVICECLOUD_OVERRIDE_IOS_DEVICE: ipad-pro-m5-13
2424
DEVICECLOUD_OVERRIDE_IOS_VERSION: "26"
2525
---
2626
# test steps
@@ -45,7 +45,7 @@ keeps the upload's iOS version, and vice versa.
4545

4646
1. `DEVICECLOUD_OVERRIDE_*` in the flow's YAML (per test)
4747
2. The upload-wide `--ios-device` / `--ios-version` / `--android-device` / `--android-api-level` flags
48-
3. Default: iPhone 14 on iOS 17, or Pixel 10 on API level 36 (see [Default Devices](../getting-started/devices-configuration.md#default-devices))
48+
3. Default: iPhone 16 on iOS 26, or Pixel 10 on API level 36 (see [Default Devices](../getting-started/devices-configuration.md#default-devices))
4949

5050
## Billing
5151

‎getting-started/devices-configuration.md‎

Lines changed: 33 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,7 @@ If you don't specify a device or OS version, then you will be allocated the defa
1010

1111
**Android:** Pixel 10 (API level 36)
1212

13-
**iOS:** iPhone 14 (iOS 17)&#x20;
14-
15-
::: warning
16-
On the 2nd November the default is moving to iPhone 16 on iOS 26.
17-
:::
13+
**iOS:** iPhone 16 (iOS 26)
1814

1915
### Android API Levels
2016

@@ -73,58 +69,59 @@ Pixel 6 Pro, Pixel 7 Pro and Generic Tablet on API level 33 were removed on 26 O
7369

7470
### iOS Versions
7571

76-
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:
72+
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)):
7773

7874
```bash
79-
dcd cloud app.zip test.yaml --ios-device iphone-16 --ios-version 27
75+
dcd cloud app.zip test.yaml --ios-device iphone-17 --ios-version 27
8076
```
8177

82-
::: warning
83-
The default version of iOS is changing to 26 on the 2nd November.
84-
:::
85-
86-
| id | Version |
87-
| ---- | ----------------- |
78+
| id | Version |
79+
| ---- | ----------------------------- |
8880
| `27` | 27.0 (27.1 on the iPhone Duo) |
89-
| `26` | 26.5 |
90-
| `18` | 18.6 |
91-
| `17` | 17.5 (deprecated) |
81+
| `26` | 26.5 |
82+
| `18` | 18.6 |
83+
| `17` | 17.5 (deprecated) |
84+
85+
iOS 17 runs only on iPhone 14, so pass `--ios-device iphone-14` with `--ios-version 17`.
9286

9387
::: warning
94-
iOS 17 is deprecated and we're targeting removal on the 2nd November. This date is subject to change based on usage.
88+
iOS 17 is deprecated and we're targeting removal on the 9th November. This date is subject to change based on usage.
9589
:::
9690

9791
### iOS Devices
9892

99-
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:
93+
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:
10094

10195
```bash
10296
dcd cloud app.zip test.yaml --ios-device ipad-pro-m5-13 --ios-version 26
10397
```
10498

105-
| id | Name | Dimensions | Valid iOS versions |
106-
| ------------------- | -------------------------------------- | ----------- | ------------------ |
107-
| `iphone-duo` | iPhone Duo (starts folded) | 1398 x 2034 | 27 |
108-
| `iphone-18-pro-max` | iPhone 18 Pro Max | 1320 x 2868 | 27 |
109-
| `iphone-18-pro` | iPhone 18 Pro | 1206 x 2622 | 27 |
110-
| `iphone-air` | iPhone Air | 1260 x 2736 | 26, 27 |
111-
| `iphone-17` | iPhone 17 | 1206 x 2622 | 26, 27 |
112-
| `iphone-16-pro-max` | iPhone 16 Pro Max (deprecated) | 1320 x 2868 | 18, 26, 27 |
113-
| `iphone-16-pro` | iPhone 16 Pro (deprecated) | 1206 x 2622 | 18, 26, 27 |
114-
| `iphone-16-plus` | iPhone 16 Plus (deprecated) | 1290 x 2796 | 26, 27 |
115-
| `iphone-16` | iPhone 16 | 1179 x 2556 | 18, 26, 27 |
116-
| `iphone-15` | iPhone 15 (deprecated) | 1179 x 2556 | 17 |
117-
| `iphone-14` | iPhone 14 | 1170 x 2532 | 17, 18 |
118-
| `ipad-pro-m5-13` | iPad Pro 13-inch (M5) | 2064 x 2752 | 26, 27 |
119-
| `ipad-pro-m5-11` | iPad Pro 11-inch (M5) | 1668 x 2420 | 26, 27 |
120-
| `ipad-pro-6th-gen` | iPad Pro (6th Generation) (deprecated) | 2048 x 2732 | 18, 26, 27 |
99+
::: info
100+
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.
101+
:::
102+
103+
| id | Name | Dimensions | Valid iOS versions |
104+
| ------------------- | ------------------------------ | ----------- | ------------------ |
105+
| `iphone-duo` | iPhone Duo (starts folded) | 1398 x 2034 | 27 |
106+
| `iphone-18-pro-max` | iPhone 18 Pro Max | 1320 x 2868 | 27 |
107+
| `iphone-18-pro` | iPhone 18 Pro | 1206 x 2622 | 27 |
108+
| `iphone-air` | iPhone Air | 1260 x 2736 | 26, 27 |
109+
| `iphone-17` | iPhone 17 | 1206 x 2622 | 26, 27 |
110+
| `iphone-16-pro-max` | iPhone 16 Pro Max (deprecated) | 1320 x 2868 | 18, 26, 27 |
111+
| `iphone-16-pro` | iPhone 16 Pro (deprecated) | 1206 x 2622 | 18, 26, 27 |
112+
| `iphone-16` | iPhone 16 | 1179 x 2556 | 18, 26, 27 |
113+
| `iphone-14` | iPhone 14 | 1170 x 2532 | 17, 18 |
114+
| `ipad-pro-m5-13` | iPad Pro 13-inch (M5) | 2064 x 2752 | 26, 27 |
115+
| `ipad-pro-m5-11` | iPad Pro 11-inch (M5) | 1668 x 2420 | 26, 27 |
121116

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

124119
::: warning
125-
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.
120+
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.
126121
:::
127122

123+
iPhone 15, iPhone 16 Plus and iPad Pro (6th Generation) were removed on 2 November 2026.
124+
128125
#### Foldables
129126

130127
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).
@@ -168,7 +165,7 @@ We will always aim to support the latest versions of iOS and additionally contin
168165

169166
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.
170167

171-
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.
168+
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.
172169

173170
### Android Support Policy
174171

‎mcp/tools.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ This tool consumes test credits. It's annotated as destructive so clients can pr
7070
| `flowFile` | string | **Required.** Path to a Maestro `.yaml`/`.yml` flow, or a directory of flows |
7171
| `appFile` | string | Path to a local app binary — `.apk`, `.app`, or `.zip`. Mutually exclusive with `appBinaryId` |
7272
| `appBinaryId` | string | ID of a previously uploaded binary. Mutually exclusive with `appFile` |
73-
| `iosVersion` | string | iOS version, e.g. `17` |
74-
| `iosDevice` | string | iOS device, e.g. `iphone-14` |
73+
| `iosVersion` | string | iOS version, e.g. `26` |
74+
| `iosDevice` | string | iOS device, e.g. `iphone-16` |
7575
| `androidApiLevel` | string | Android API level, e.g. `34` |
7676
| `androidDevice` | string | Android device, e.g. `pixel-10` |
7777
| `googlePlay` | boolean | Use a [Google Play-enabled](../configuration/google-play-apis.md) Android image |

0 commit comments

Comments
 (0)