def GetSupportedSimDeviceTypes(os_type=None):
    'Gets the name list of supported simulator device types of given OS type.\n\n  If os_type is not provided, it will return all supported simulator device\n  types. The names are got from command result of `xcrun simctl list devices`.\n  So some simulator device types\' names may be different in different Xcode.\n  E.g., the name of iPad Pro (12.9-inch) in Xcode 7.2.1 is "iPad Pro", but it is\n  "iPad Pro (12.9-inch)" in Xcode 8+.\n\n  Args:\n    os_type: shared.ios_constants.OS, OS type of simulator, such as iOS,\n      watchOS, tvOS.\n\n  Returns:\n    a list of string, each item is a simulator device type.\n    E.g., ["iPhone 5", "iPhone 6 Plus"]\n  '
    sim_types_infos_json = json.loads(RunSimctlCommand(('xcrun', 'simctl', 'list', 'devicetypes', '-j')))
    sim_types = []
    for sim_types_info in sim_types_infos_json['devicetypes']:
        sim_type = sim_types_info['name']
        if ((os_type is None) or ((os_type == ios_constants.OS.IOS) and sim_type.startswith('i')) or ((os_type == ios_constants.OS.TVOS) and ('TV' in sim_type)) or ((os_type == ios_constants.OS.WATCHOS) and ('Watch' in sim_type))):
            sim_types.append(sim_type)
    return sim_types
Gets the name list of supported simulator device types of given OS type.

If os_type is not provided, it will return all supported simulator device
types. The names are got from command result of `xcrun simctl list devices`.
So some simulator device types' names may be different in different Xcode.
E.g., the name of iPad Pro (12.9-inch) in Xcode 7.2.1 is "iPad Pro", but it is
"iPad Pro (12.9-inch)" in Xcode 8+.

Args:
  os_type: shared.ios_constants.OS, OS type of simulator, such as iOS,
    watchOS, tvOS.

Returns:
  a list of string, each item is a simulator device type.
  E.g., ["iPhone 5", "iPhone 6 Plus"]
def GetSupportedSimDeviceTypes(os_type=None):
    'Gets the name list of supported simulator device types of given OS type.\n\n  If os_type is not provided, it will return all supported simulator device\n  types. The names are got from command result of `xcrun simctl list devices`.\n  So some simulator device types\' names may be different in different Xcode.\n  E.g., the name of iPad Pro (12.9-inch) in Xcode 7.2.1 is "iPad Pro", but it is\n  "iPad Pro (12.9-inch)" in Xcode 8+.\n\n  Args:\n    os_type: shared.ios_constants.OS, OS type of simulator, such as iOS,\n      watchOS, tvOS.\n\n  Returns:\n    a list of string, each item is a simulator device type.\n    E.g., ["iPhone 5", "iPhone 6 Plus"]\n  '
    sim_types_infos_json = json.loads(RunSimctlCommand(('xcrun', 'simctl', 'list', 'devicetypes', '-j')))
    sim_types = []
    for sim_types_info in sim_types_infos_json['devicetypes']:
        sim_type = sim_types_info['name']
        if ((os_type is None) or ((os_type == ios_constants.OS.IOS) and sim_type.startswith('i')) or ((os_type == ios_constants.OS.TVOS) and ('TV' in sim_type)) or ((os_type == ios_constants.OS.WATCHOS) and ('Watch' in sim_type))):
            sim_types.append(sim_type)
    return sim_types