Per-flow Devices
By default every flow in an upload runs on the same device, set by the --ios-device, --ios-version, --android-device and --android-api-level flags on dcd cloud.
Sometimes a single flow only matters on one device for example a flow you must verify on a tablet, or a flow that has to work on your oldest supported OS. Rather than running a separate upload per flow, a flow can declare the device it needs directly in its YAML.
A flow that declares a device runs as normal on that device. Flows that declare nothing inherit the upload's device, exactly as before. Your run count does not change.
Usage
Set the device in the flow's env: block. You can find a list of supported devices and operating systems here.
iOS
# checkout-tablet.yaml
appId: my.app
env:
DEVICECLOUD_OVERRIDE_IOS_DEVICE: ipad-pro-m5-13
DEVICECLOUD_OVERRIDE_IOS_VERSION: "26"
---
# test stepsAndroid
# onboarding-oldest-os.yaml
appId: my.app
env:
DEVICECLOUD_OVERRIDE_ANDROID_DEVICE: pixel-6
DEVICECLOUD_OVERRIDE_ANDROID_API_LEVEL: "32"
---
# test stepsEither key may be set on its own. A flow that sets only DEVICECLOUD_OVERRIDE_IOS_DEVICE keeps the upload's iOS version, and vice versa.
Precedence
DEVICECLOUD_OVERRIDE_*in the flow's YAML (per test)- The upload-wide
--ios-device/--ios-version/--android-device/--android-api-levelflags - Default: iPhone 16 on iOS 26, or Pixel 10 on API level 36 (see Default Devices)
Billing
Each flow still runs once, so your total run count is unchanged. What can change is a flow's rate: iPad, iPhone Duo, Generic Tablet, Pixel 10 Pro Fold and Google Play flows are charged at our advanced rate as per our pricing. Targeting an iPad from one flow in an otherwise iPhone upload charges that one flow at the advanced rate, and the rest at the standard rate.
Rules
Device and OS must be a supported combination, including Google Play if applicable.
You cannot target across platforms in the same upload.
On the
m1andgpu1runner types, a flow's device must be on API level 34 or above (up to 37 onm1). Google Play is available onm1only, onpixel-8(API 34) andpixel-10(API 36, 37). Generic Tablet isn't available on them.
Running a suite across several devices
Per-flow targeting picks a device for one flow. To run your entire suite against several devices, use a device matrix — every flow runs once per device, under a single upload.
