# XcodeVersionConfig

{% dynamic setvar source_file "src/main/java/com/google/devtools/build/lib/starlarkbuildapi/apple/XcodeConfigInfoApi.java" %} {% dynamic setvar version "7.1.0" %} {% dynamic setvar original_path "/rules/lib/providers/XcodeVersionConfig" %} {% include "_buttons.html" %} The set of Apple versions computed from command line options and the xcode_config rule.

## Members

- XcodeVersionConfig
- availability
- execution_info
- minimum_os_for_platform_type
- sdk_version_for_platform
- to_json
- to_proto
- xcode_version

## XcodeVersionConfig

    XcodeVersionConfig XcodeVersionConfig(iosSdkVersion, iosMinimumOsVersion, visionosSdkVersion, visionosMinimumOsVersion, watchosSdkVersion, watchosMinimumOsVersion, tvosSdkVersion, tvosMinimumOsVersion, macosSdkVersion, macosMinimumOsVersion, xcodeVersion)

Returns the Xcode info that is associated with this target

### Parameters

Parameter | Description
--- | ---
`iosSdkVersion` | required The ios SDK version.
`iosMinimumOsVersion` | required The ios minimum os version.
`visionosSdkVersion` | required The visionOS SDK version.
`visionosMinimumOsVersion` | required The visionOS minimum os version.
`watchosSdkVersion` | required The watchos SDK version.
`watchosMinimumOsVersion` | required The watchos minimum os version.
`tvosSdkVersion` | required The tvos SDK version.
`tvosMinimumOsVersion` | required The tvos minimum os version.
`macosSdkVersion` | required The macos SDK version.
`macosMinimumOsVersion` | required The macos minimum os version.
`xcodeVersion` | required The selected Xcode version from this config.

## availability

    string XcodeVersionConfig.availability()

Returns the availability of this Xcode version, 'remote' if the version is only available remotely, 'local' if the version is only available locally, 'both' if the version is available both locally and remotely, or 'unknown' if the availability could not be determined.

## execution_info

    dict XcodeVersionConfig.execution_info()

Returns the execution requirements for actions that use this Xcode config.

## minimum_os_for_platform_type

    DottedVersion XcodeVersionConfig.minimum_os_for_platform_type(platform_type)

The minimum compatible OS version for target simulator and devices for a particular platform type.

### Parameters

Parameter | Description
--- | ---
`platform_type` | required The apple platform type.

## sdk_version_for_platform

    DottedVersion XcodeVersionConfig.sdk_version_for_platform(platform)

The version of the platform SDK that will be used to build targets for the given platform.

### Parameters

Parameter | Description
--- | ---
`platform` | required The apple platform.

## to_json

    string XcodeVersionConfig.to_json()

Deprecated. This API is deprecated and will be removed soon. Please do not depend on it. It is disabled with `---incompatible_struct_has_no_methods`. Use this flag to verify your code is compatible with its imminent removal.
Creates a JSON string from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs, a list of these types or a dictionary with string keys and values of these types. Quotes and new lines in strings are escaped. Examples:

    struct(key=123).to_json()
    # {"key":123}

    struct(key=True).to_json()
    # {"key":true}

    struct(key=[1, 2, 3]).to_json()
    # {"key":[1,2,3]}

    struct(key='text').to_json()
    # {"key":"text"}

    struct(key=struct(inner_key='text')).to_json()
    # {"key":{"inner_key":"text"}}

    struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
    # {"key":[{"inner_key":1},{"inner_key":2}]}

    struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
    # {"key":{"inner_key":{"inner_inner_key":"text"}}}

.

Deprecated: instead, use json.encode(x) or json.encode_indent(x), which work for values other than structs and do not pollute the struct field namespace.

## to_proto

    string XcodeVersionConfig.to_proto()

Deprecated. This API is deprecated and will be removed soon. Please do not depend on it. It is disabled with `---incompatible_struct_has_no_methods`. Use this flag to verify your code is compatible with its imminent removal.
Creates a text message from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs or dicts or lists of these types. Quotes and new lines in strings are escaped. Struct keys are iterated in the sorted order. Examples:

    struct(key=123).to_proto()
    # key: 123

    struct(key=True).to_proto()
    # key: true

    struct(key=[1, 2, 3]).to_proto()
    # key: 1
    # key: 2
    # key: 3

    struct(key='text').to_proto()
    # key: "text"

    struct(key=struct(inner_key='text')).to_proto()
    # key {
    #   inner_key: "text"
    # }

    struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
    # key {
    #   inner_key: 1
    # }
    # key {
    #   inner_key: 2
    # }

    struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
    # key {
    #    inner_key {
    #     inner_inner_key: "text"
    #   }
    # }

    struct(foo={4: 3, 2: 1}).to_proto()
    # foo: {
    #   key: 4
    #   value: 3
    # }
    # foo: {
    #   key: 2
    #   value: 1
    # }

Deprecated: use proto.encode_text(x) instead.

## xcode_version

    DottedVersion XcodeVersionConfig.xcode_version()

Returns the Xcode version that is being used to build.

This will return `None` if no Xcode versions are available. May return `None`.