Skip to content

Devices

Devices, runtimes and SDKs#

You must specify devices as a target to run tests against. It is not required to setup any devices beforehand. Instead Emcee worker is responsible for managing simulators/emulators entire lifecycle. You have to specify devices for every configuration you've got in emceeplan.

iOS#

iOS simulator is defined by device family and runtime version in simctl-format, e.g. iPhone-14 (or its verbose version com.apple.CoreSimulator.SimDeviceType.iPhone-14) and iOS-16-1(or its verbose version com.apple.CoreSimulator.SimRuntime.iOS-16-1):

tests:
  configurations:
    - platform: ios
      #...
      device:
        simDeviceType: iPhone-14
        simRuntime: iOS-16-1

Installing additional devices and runtimes#

Emcee worker detects installed runtimes and device types in a host system and forms relevant entitlements. If you try to run tests againts runtime/device that is not presented in a farm you will encounter the following error:

Failed to process request at path "/scheduleTests": "Some worker requirements cannot be met after waiting for any worker with suitable capabilities to appear".

Refer to third party tools like xcodes to install wanted runtimes.

Or find more in official documentation.


NOTE

Since Xcode 15.* it does not ship iOS platform on board and require you to manually install simulator runtime.



NOTE

It is recommended to keep environment identical on servers running Emcee worker.


Android#

Android emulator is defined by sdk version and device type. You can run your tests on several devices. Use default device if you don't know exact type you need:

tests:
  configurations:
    - platform: android
      #...
      devices:
        - sdkVersion: 31
          deviceType: default

Available SDKs#

Emcee android worker is a baked container image with wide range of preinstalled SDKs. You can find supported SDKs and resolutions in a dedicated page.

Write us if you need additional one or use worker image as base to create your own.