{
  "name": "xcodebuild",
  "description": "Build Xcode projects",
  "options": [
    {
      "names": [
        "-usage"
      ],
      "description": "Print brief usage"
    },
    {
      "names": [
        "-help"
      ],
      "description": "Print complete usage"
    },
    {
      "names": [
        "-verbose"
      ],
      "description": "Provide additional status output"
    },
    {
      "names": [
        "-license"
      ],
      "description": "Show the Xcode and SDK license agreements"
    },
    {
      "names": [
        "-checkFirstLaunchStatus"
      ],
      "description": "Check if any First Launch tasks need to be performed"
    },
    {
      "names": [
        "-runFirstLaunch"
      ],
      "description": "Install packages and agree to the license"
    },
    {
      "names": [
        "-project"
      ],
      "description": "Build the project NAME",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-target"
      ],
      "description": "Build the target NAME",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-alltargets"
      ],
      "description": "Build all targets"
    },
    {
      "names": [
        "-workspace"
      ],
      "description": "Build the workspace NAME",
      "takes_arg": true,
      "arg": {
        "name": "NAME",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-scheme"
      ],
      "description": "Build the scheme NAME",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-configuration"
      ],
      "description": "Use the build configuration NAME for building each target",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-xcconfig"
      ],
      "description": "Apply the build settings defined in the file at PATH as overrides",
      "takes_arg": true,
      "arg": {
        "name": "NAME",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-arch"
      ],
      "description": "Build each target for the architecture ARCH; this will override architectures defined in the project",
      "takes_arg": true,
      "arg": {
        "name": "ARCH",
        "suggestions": [
          "x86_64",
          "arm64",
          "armv7"
        ]
      }
    },
    {
      "names": [
        "-sdk"
      ],
      "description": "Use SDK as the name or path of the base SDK when building the project",
      "takes_arg": true,
      "arg": {
        "name": "SDK",
        "template": "folders"
      }
    },
    {
      "names": [
        "-toolchain"
      ],
      "description": "Use the toolchain with identifier or name NAME",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-destination"
      ],
      "description": "Use the destination described by DESTINATIONSPECIFIER (a comma-separated set of key=value pairs describing the destination to use)",
      "takes_arg": true,
      "arg": {
        "name": "DESTINATION SPECIFIER",
        "template": "folders"
      }
    },
    {
      "names": [
        "-destination-timeout"
      ],
      "description": "Wait for TIMEOUT seconds while searching for the destination device",
      "takes_arg": true,
      "arg": {
        "name": "TIMEOUT"
      }
    },
    {
      "names": [
        "-parallelizeTargets"
      ],
      "description": "Build independent targets in parallel"
    },
    {
      "names": [
        "-jobs"
      ],
      "description": "Specify the maximum number of concurrent build operations",
      "takes_arg": true,
      "arg": {
        "name": "NUMBER"
      }
    },
    {
      "names": [
        "-maximum-concurrent-test-device-destinations"
      ],
      "description": "The maximum number of device destinations to test on concurrently",
      "takes_arg": true,
      "arg": {
        "name": "NUMBER"
      }
    },
    {
      "names": [
        "-maximum-concurrent-test-simulator-destinations"
      ],
      "description": "The maximum number of simulator destinations to test on concurrently",
      "takes_arg": true,
      "arg": {
        "name": "NUMBER"
      }
    },
    {
      "names": [
        "-parallel-testing-enabled"
      ],
      "description": "Overrides the per-target setting in the scheme",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "YES",
          "NO"
        ]
      }
    },
    {
      "names": [
        "-parallel-testing-worker-count"
      ],
      "description": "The exact number of test runners that will be spawned during parallel testing",
      "takes_arg": true,
      "arg": {
        "name": "NUMBER"
      }
    },
    {
      "names": [
        "-maximum-parallel-testing-workers"
      ],
      "description": "The maximum number of test runners that will be spawned during parallel testing",
      "takes_arg": true,
      "arg": {
        "name": "NUMBER"
      }
    },
    {
      "names": [
        "-dry-run"
      ],
      "description": "Do everything except actually running the commands"
    },
    {
      "names": [
        "-quiet"
      ],
      "description": "Do not print any output except for warnings and errors"
    },
    {
      "names": [
        "-hideShellScriptEnvironment"
      ],
      "description": "Don't show shell script environment variables in build log"
    },
    {
      "names": [
        "-showsdks"
      ],
      "description": "Display a compact list of the installed SDKs"
    },
    {
      "names": [
        "-showdestinations"
      ],
      "description": "Display a list of destinations"
    },
    {
      "names": [
        "-showTestPlans"
      ],
      "description": "Display a list of test plans"
    },
    {
      "names": [
        "-showBuildSettings"
      ],
      "description": "Display a list of build settings and values"
    },
    {
      "names": [
        "-showBuildSettingsForIndex"
      ],
      "description": "Display build settings for the index service"
    },
    {
      "names": [
        "-list"
      ],
      "description": "Lists the targets and configurations in a project, or the schemes in a workspace"
    },
    {
      "names": [
        "-find-executable"
      ],
      "description": "Display the full path to executable NAME in the provided SDK and toolchain",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-find-library"
      ],
      "description": "Display the full path to library NAME in the provided SDK and toolchain",
      "takes_arg": true,
      "arg": {
        "name": "NAME"
      }
    },
    {
      "names": [
        "-version"
      ],
      "description": "Display the version of Xcode; with -sdk will display info about one or all installed SDKs"
    },
    {
      "names": [
        "-enableAddressSanitizer"
      ],
      "description": "Turn the address sanitizer on or off",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "YES",
          "NO"
        ]
      }
    },
    {
      "names": [
        "-enableThreadSanitizer"
      ],
      "description": "Turn the thread sanitizer on or off",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "YES",
          "NO"
        ]
      }
    },
    {
      "names": [
        "-enableUndefinedBehaviorSanitizer"
      ],
      "description": "Turn the undefined behavior sanitizer on or off",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "YES",
          "NO"
        ]
      }
    },
    {
      "names": [
        "-resultBundlePath"
      ],
      "description": "Specifies the directory where a result bundle describing what occurred will be placed",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "folders"
      }
    },
    {
      "names": [
        "-resultStreamPath"
      ],
      "description": "Specifies the file where a result stream will be written to (the file must already exist)",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-resultBundleVersion"
      ],
      "description": "Specifies which result bundle version should be used",
      "takes_arg": true,
      "arg": {
        "name": "version"
      }
    },
    {
      "names": [
        "-clonedSourcePackagesDirPath"
      ],
      "description": "Specifies the directory to which remote source packages are fetch or expected to be found",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "folders"
      }
    },
    {
      "names": [
        "-derivedDataPath"
      ],
      "description": "Specifies the directory where build products and other derived data will go",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "folders"
      }
    },
    {
      "names": [
        "-archivePath"
      ],
      "description": "Specifies the directory where any created archives will be placed, or the archive that should be exported",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "folders"
      }
    },
    {
      "names": [
        "-exportArchive"
      ],
      "description": "Specifies that an archive should be exported"
    },
    {
      "names": [
        "-exportNotarizedApp"
      ],
      "description": "Export an archive that has been notarized by Apple"
    },
    {
      "names": [
        "-exportOptionsPlist"
      ],
      "description": "Specifies a path to a plist file that configures archive exporting",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-enableCodeCoverage"
      ],
      "description": "Turn code coverage on or off when testing",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "YES",
          "NO"
        ]
      }
    },
    {
      "names": [
        "-exportPath"
      ],
      "description": "Specifies the destination for the product exported from an archive",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "folders"
      }
    },
    {
      "names": [
        "-skipUnavailableActions"
      ],
      "description": "Specifies that scheme actions that cannot be performed should be skipped instead of causing a failure"
    },
    {
      "names": [
        "-exportLocalizations"
      ],
      "description": "Exports completed and outstanding project localizations"
    },
    {
      "names": [
        "-importLocalizations"
      ],
      "description": "Imports localizations for a project, assuming any necessary localized resources have been created in Xcode"
    },
    {
      "names": [
        "-localizationPath"
      ],
      "description": "Specifies a path to XLIFF localization file",
      "takes_arg": true,
      "arg": {
        "name": "PATH",
        "template": "filepaths"
      }
    },
    {
      "names": [
        "-exportLanguage"
      ],
      "description": "Specifies multiple optional ISO 639-1 languages included in a localization export",
      "takes_arg": true,
      "arg": {
        "name": "languages",
        "is_variadic": true
      }
    },
    {
      "names": [
        "-xcroot"
      ],
      "description": "Specifies a path to a .xcroot to use for building and/or testing",
      "takes_arg": true,
      "arg": {
        "name": "path",
        "template": "folders"
      }
    },
    {
      "names": [
        "-xctestrun"
      ],
      "description": "Specifies a path to a test run specification",
      "takes_arg": true,
      "arg": {
        "name": "path",
        "template": "folders"
      }
    },
    {
      "names": [
        "-testPlan"
      ],
      "description": "Specifies the name of the test plan associated with the scheme to use for testing",
      "takes_arg": true,
      "arg": {
        "name": "test plan"
      }
    },
    {
      "names": [
        "-only-testing"
      ],
      "description": "Constrains testing by specifying tests to include, and excluding other tests"
    },
    {
      "names": [
        "-only-testing:"
      ],
      "description": "Constrains testing by specifying tests to include, and excluding other tests",
      "takes_arg": true,
      "arg": {
        "name": "Test Identifier"
      }
    },
    {
      "names": [
        "-skip-testing"
      ],
      "description": "Constrains testing by specifying tests to exclude, but including other tests"
    },
    {
      "names": [
        "-skip-testing:"
      ],
      "description": "Constrains testing by specifying tests to exclude, but including other tests",
      "takes_arg": true,
      "arg": {
        "name": "Test Identifier"
      }
    },
    {
      "names": [
        "-test-timeouts-enabled"
      ],
      "description": "Enable or disable test timeout behavior",
      "takes_arg": true,
      "arg": {
        "name": "mode",
        "suggestions": [
          "YES",
          "NO"
        ]
      }
    },
    {
      "names": [
        "-default-test-execution-time-allowance"
      ],
      "description": "The default execution time an individual test is given to execute, if test timeouts are enabled",
      "takes_arg": true,
      "arg": {
        "name": "SECONDS"
      }
    },
    {
      "names": [
        "-maximum-test-execution-time-allowance"
      ],
      "description": "The maximum execution time an individual test is given to execute, regardless of the test's preferred allowance",
      "takes_arg": true,
      "arg": {
        "name": "SECONDS"
      }
    },
    {
      "names": [
        "-only-test-configuration"
      ],
      "description": "Constrains testing by specifying test configurations to include, and excluding other test configurations"
    },
    {
      "names": [
        "-skip-test-configuration"
      ],
      "description": "Constrains testing by specifying test configurations to exclude, but including other test configurations"
    },
    {
      "names": [
        "-testLanguage"
      ],
      "description": "Constrains testing by specifying ISO 639-1 language in which to run the tests"
    },
    {
      "names": [
        "-testRegion"
      ],
      "description": "Constrains testing by specifying ISO 3166-1 region in which to run the tests"
    },
    {
      "names": [
        "-resolvePackageDependencies"
      ],
      "description": "Resolves any Swift package dependencies referenced by the project or workspace"
    },
    {
      "names": [
        "-disableAutomaticPackageResolution"
      ],
      "description": "Prevents packages from automatically being resolved to versions other than those recorded in the `Package.resolved` file"
    },
    {
      "names": [
        "-json"
      ],
      "description": "Output as JSON"
    },
    {
      "names": [
        "-allowProvisioningUpdates"
      ],
      "description": "Allow xcodebuild to communicate with the Apple Developer website. For automatically signed targets, xcodebuild will create and update profiles, app IDs, and certificates. For manually signed targets, "
    },
    {
      "names": [
        "-allowProvisioningDeviceRegistration"
      ],
      "description": "Allow xcodebuild to register your destination device on the developer portal if necessary. This flag only takes effect if -allowProvisioningUpdates is also passed"
    },
    {
      "names": [
        "-scmProvider"
      ],
      "description": "Which implementation to use for Git operations (system/xcode)",
      "takes_arg": true,
      "arg": {
        "name": "Implementation",
        "suggestions": [
          "system",
          "xcode"
        ]
      }
    },
    {
      "names": [
        "-showBuildTimingSummary"
      ],
      "description": "Display a report of the timings of all the commands invoked during the build"
    },
    {
      "names": [
        "-create-xcframework"
      ],
      "description": "Create an xcframework from prebuilt libraries; -help for more information"
    },
    {
      "names": [
        "build"
      ],
      "description": "Build the target in the build root (SYMROOT).  This is the default build action"
    },
    {
      "names": [
        "installsrc"
      ],
      "description": "Copy the source of the project to the source root (SRCROOT)"
    },
    {
      "names": [
        "install"
      ],
      "description": "Build the target and install it into the target's installation directory in the distribution root (DSTROOT)"
    },
    {
      "names": [
        "clean"
      ],
      "description": "Remove build products and intermediate files from the build root (SYMROOT)"
    }
  ]
}
