Use this task to build an Xcode workspace on macOS.
Inputs
actions - Actions
string. Required. Default value: build.
Specifies a space-delimited list of actions. Valid options are build, clean, test, analyze, and archive. For example: build clean performs a clean build. See the Apple: Building from the command line with Xcode FAQ.
configuration - Configuration
string. Default value: $(Configuration).
Specifies the Xcode project or workspace configuration to build. When using a variable, specify a value (for example, Release) on the Variables tab.
sdk - SDK
string. Default value: $(SDK).
Builds an Xcode project or workspace against the specified SDK. Run xcodebuild -showsdks to see a valid list of SDKs.
xcWorkspacePath - Workspace/Project Path
string. Default value: **/*.xcodeproj/*.xcworkspace.
Optional. Specifies the relative path from the repo root to the Xcode workspace or project. For example: MyApp/MyApp.xcworkspace or MyApp/MyApp.xcworkspace/MyApp.xcodeproj. Leave blank if you intend to use -target flag under Advanced Arguments.
scheme - Scheme
string.
Optional. Specifies the Xcode scheme name. Must be a shared scheme (shared checkbox under Managed Schemes in Xcode). Required if Workspace is specified.
packageApp - Create App Package
boolean. Default value: true.
Specifies whether an IPA is generated as a part of the build. For exporting archives with Xcode 7 and Xcode 8, review additional inputs in the Package Options section.
archivePath - Archive Path
string.
Optional. Specifies a directory where created archives are placed.
exportPath - Export Path
string. Default value: output/$(SDK)/$(Configuration).
Optional. Specifies the destination for the product exported from the archive.
exportOptions - Export Options
string. Allowed values: auto, plist, specify. Default value: auto.
Specifies a way to pass in Export Options when exporting the archive.
exportMethod - Export Method
string. Required when exportOptions == specify. Default value: development.
Specifies the method Xcode uses to export the archive. For example, app-store, package, ad-hoc, enterprise, or development.
exportTeamId - Team ID
string. Optional. Use when exportOptions == specify.
Specifies the Apple Developer Portal 10-digit team ID to use for the export.
exportOptionsPlist - Export Options Plist
string. Required when exportOptions == plist.
Specifies the path to a plist file that configures archive exporting.
exportArgs - Export Arguments
string.
Specifies additional command line arguments used to export.
xcode8AutomaticSigning - Automatic Signing
boolean. Default value: false.
Use this input if you have an Xcode 8 or Xcode 9 project configured for Automatic Signing.
teamId - Team ID
string. Optional. Use when xcode8AutomaticSigning = true.
Specifies the 10-digit developer team ID. This is required if you are a member of multiple development teams.
signMethod - Override Using
string. Allowed values: file (File Contents), id (Identifiers). Default value: file.
Use this input if the build uses a signing or provisioning method that is different than the default. Choose File Contents to use a P12 certificate and provisioning profile. Choose Identifiers to retrieve signing settings from the default keychain and pre-installed profiles. Leave the corresponding fields blank if you do not wish to override the default build settings.
iosSigningIdentity - Signing Identity
string. Optional. Use when signMethod = id.
Specifies the signing identity override that is used to sign the build. Defaults to the Xcode project setting. Unlock Default Keychain may need to be selected.
unlockDefaultKeychain - Unlock Default Keychain
boolean. Optional. Use when signMethod = id. Default value: false.
Resolves User interaction is not allowed errors by unlocking the default keychain.
defaultKeychainPassword - Default Keychain Password
string. Optional. Use when signMethod = id.
Specifies the password to unlock the default keychain.
provProfileUuid - Provisioning Profile UUID
string. Optional. Use when signMethod = id.
Specifies the UUID of an installed provisioning profile to use for the build. Use separate build tasks with different schemes or targets to specify provisioning profiles by target in a single workspace (iOS, WatchKit, tvOS).
p12 - P12 Certificate File
string. Optional. Use when signMethod = file.
Specifies the relative path to a PKCS12 formatted P12 certificate file that contains a signing certificate to be used for the build.
p12pwd - P12 Password
string. Optional. Use when signMethod = file.
Specifies the password to a P12 certificate file. Use a build variable to encrypt.
provProfile - Provisioning Profile File
string. Optional. Use when signMethod = file.
Specifies the relative path to a file containing a provisioning profile override to be used for the build. Use separate build tasks with different schemes or targets to specify provisioning profiles by target in a single workspace (iOS, WatchKit, tvOS).
removeProfile - Remove Profile After Build
boolean. Optional. Use when signMethod = file. Default value: false.
Removes the contents of the provisioning profile file from the build agent after the build is complete. Only check if you are running one agent per user.
args - Arguments
string.
Specifies additional command line arguments used to build. This input is useful if you want to use -target or -project instead of specifying a workspace and scheme.
cwd - Working Directory
string.
Specifies the working directory for build runs. Defaults to the root of the repository.
outputPattern - Output Directory
string. Required. Default value: output/$(SDK)/$(Configuration).
Specifies the relative path where build output (binaries) are placed.
xcodeDeveloperDir - Xcode Developer Path
string.
Optional. Specifies the path to the Xcode Developer folder if it's not the system default. For use when multiple versions of Xcode are installed on a system. For example: /Applications/Xcode 7.app/Contents/Developer.
useXcpretty - Use xcpretty
boolean. Default value: false.
Formats xcodebuild output and generates a JUnit test results report. Must be installed on agent hosts. Learn more about xcpretty.
publishJUnitResults - Publish to VSTS/TFS
boolean. Default value: false.
JUnit test results that were produced using xctool are published to VSTS/TFS.
Task control options
All tasks have control options in addition to their task inputs. For more information, see Control options and common task properties.
Output variables
None.
Requirements
| Requirement | Description |
|---|---|
| Pipeline types | YAML, Classic build |
| Runs on | All |
| Demands | Self-hosted agents must have capabilities that match the following demands to run jobs that use this task: xcode |
| Capabilities | This task does not satisfy any demands for subsequent tasks in the job. |
| Command restrictions | Any |
| Settable variables | Any |
| Agent version | All supported agent versions. |
| Task category | Build |