LogoLogo
🚀 Run Maestro tests in the cloud →
  • Home
  • Star us on GitHub
  • Getting Started
    • What is Maestro?
    • Installing Maestro
      • macOS
      • Windows
      • Linux
    • Build and Install your App
      • Android
      • iOS
    • Run a Sample Flow
    • Writing Your First Flow
    • Maestro Studio
    • Running Flows on CI
  • Cloud
    • Run Maestro tests in the cloud
    • Cloud Quickstart
    • CI Integration
      • GitHub Actions
        • Maestro GitHub Action for Android
        • Maestro GitHub Action for iOS
        • Maestro GitHub Action for Flutter
      • Bitrise
      • Bitbucket Pipelines
      • CircleCI
      • Integration with any CI platform
    • Pull Request Integration
    • Cloud Reference
      • Build your app for the cloud
      • Configuring OS Version
      • Configuring device locale
      • Device timezones
      • Email Notifications
      • Slack Notifications
      • Webhook Integration
      • Managing Secrets
      • Limits
      • Reusing App Binary
      • IP Allowlist
      • System Status
  • Platform Support
    • Supported Platforms
    • Android - Views
    • Android - Jetpack Compose
    • iOS - UIKit
    • iOS - SwiftUI
    • React Native
    • Flutter
    • Web Views
    • Web (Desktop Browser)
  • Examples
    • Android contacts flow automation
    • Facebook signup flow automation
    • Advanced: Wikipedia Android
    • Page Object Model
  • CLI
    • Cloud
    • Test Suites & Reports
    • Tags
    • Record Your Flow
    • Continuous Mode
    • View Hierarchy
    • Start Device
  • API Reference
    • Commands
      • addMedia
      • assertVisible
      • assertNotVisible
      • assertTrue
      • assertWithAI
      • assertNoDefectsWithAi
      • back
      • clearKeychain
      • clearState
      • copyTextFrom
      • evalScript
      • eraseText
      • extendedWaitUntil
      • extractTextWithAI
      • hideKeyboard
      • inputText
      • killApp
      • launchApp
      • openLink
      • pressKey
      • pasteText
      • repeat
      • retry
      • runFlow
      • runScript
      • scroll
      • scrollUntilVisible
      • setAirplaneMode
      • setLocation
      • startRecording
      • stopApp
      • stopRecording
      • swipe
      • takeScreenshot
      • toggleAirplaneMode
      • tapOn
      • doubleTapOn
      • longPressOn
      • travel
      • waitForAnimationToEnd
    • Common command arguments
    • Selectors
    • Configuration
      • Workspace configuration
      • Flow configuration
      • AI configuration
  • Advanced
    • Nested Flows
    • Wait
    • Loops
    • Conditions
    • Parameters & Constants
    • JavaScript
      • Run JavaScript
      • Outputs
      • Logging
      • Access element text
      • Make HTTP requests
      • GraalJS support
      • JavaScript announcement blog
    • Specify a Device
    • Configure Permissions
    • Detect Maestro in your app
    • Configure Maestro driver timeout
    • onFlowStart / onFlowComplete hooks
    • Test in different locales
    • Structuring your test suite
  • Troubleshooting
    • Known Issues
    • Frequently Asked Questions
    • Bug Report
    • Rollback Maestro
    • Debug Output
    • HOWTOs
      • Arrange your repository for Maestro tests
      • scrollUntilVisible for fragments
  • Community
    • Contributions
    • Articles & Tutorials
    • Case Studies
    • Resources
Powered by GitBook

Read to wire into CI or scale up your testing?

  • Run Maestro tests in the cloud →
On this page
  • Android
  • iOS
  • Using the ios-version parameter (deprecated)
  • Using a specific iOS minor version & device (recommended)

Was this helpful?

Edit on GitHub
  1. Cloud
  2. Cloud Reference

Configuring OS Version

PreviousBuild your app for the cloudNextConfiguring device locale

Last updated 23 days ago

Was this helpful?

🚀 Cloud Plan required - get started for free at

Android

You can configure your Flows to run on a specific Android OS version (API level) using the android-api-level parameter when running the maestro cloud command:

maestro cloud --android-api-level 30 myapp.apk myflows/

If you're using one of the CI integrations, please refer to the CI documentation for your specific integration:

Emulator specs

  • x86_64 architecture

  • Android API 33 (Google APIs) (Default)

  • 606x1280, 244 dpi\

Supported API levels:

Android Version
API Level

Android 14 Upside Down Cake

34 (Google APIs)

Android 13 Tiramisu

33 (Google APIs) (default)

Android 12 Snow Cone

31 (Google APIs)

Android 11 Red Velvet Cake

30 (Google APIs)

Android 10 Quince Tart

29 (Google APIs)

iOS

Flows will be run on iOS simulators

Simulator Specs

  • ARM or x86 architecture (via Rosetta)

  • iOS version 16 (default)

  • iPhone 11 (default)

  • 828x1792, 326 ppi (iPhone 11)

Using the ios-version parameter (deprecated)

You can configure your Flows to run on a specific iOS major version using the ios-version parameter when running the maestro cloud command:

maestro cloud --ios-version 17 myapp.app myflows/

Maestro will automatically select an appropriate minor version, meaning that if you specify iOS 16 your Flows will for example be run on 16.2. If you happen to specify a minimum deployment target version that is below the selected minor version (for example 16.0), an error message will be surfaced with instructions on how to recover.

Notice this mode is deprecated and will be removed in a future release. Current supported values are 16, 17 and 18. If you use this flag, your tests will always run with an iPhone 11 simulator.

Using a specific iOS minor version & device (recommended)

You can configure your Flows to run on a specific iOS runtime and device using the --device-os and --device-model flags when running the maestro cloud command.

The following values are supported:

  • --device-model - iPhone-11, iPhone-16-Pro, iPhone-16, iPad-10th-generation

  • --device-os - iOS-16-2, iOS-17-5, iOS-18-2

Please note that not all runtimes are available for all devices. This table covers the available combinations:

Device Model
iOS Version

iPhone-11

iOS-16-2, iOS-17-5, iOS-18-2

iPhone-16-Pro

iOS-18-2

iPhone-16

iOS-18-2

iPad-10th-generation

iOS-16-2, iOS-17-5, iOS-18-2

For example, to run your Flows on iOS 18.2 with an iPhone 16 Pro, you would use:

maestro cloud --device-os iOS-18-2 --device-model iPhone-16-Pro myapp.app myflows/
maestro.dev
CI Integration