Share via


Xcode@2 - Xcode Build v2 task

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.


packageTool - Create Package (IPA) using
string. Required. Allowed values: xcrun (xcrun (deprecated by Apple)), xcodebuild (xcodebuild archive and export). Default value: xcodebuild.

Specifies the tool to use for generating the IPA.


archivePath - Archive Path
string. Optional. Use when packageTool == xcodebuild.

Specifies a directory where created archives are placed.


exportPath - Export Path
string. Optional. Use when packageTool == xcodebuild. Default value: output/$(SDK)/$(Configuration).

Specifies the destination for the product exported from the archive.


exportOptions - Export Options
string. Optional. Use when packageTool == xcodebuild. 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.


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 if specified. 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.


useXctool - Use xctool
boolean.

Uses xctool instead of xcodebuild. Must be installed on agent hosts. Learn more about xctool.
Note: xctool is deprecated and does not work with Xcode 8.


xctoolReporter - xctool Test Reporter Format
string.

Tests the reporter format to use when the test action is specified and Use xctool is checked. Specify junit:output-file-path-here.xml to generate a file format compatible with the Publish Test Results task. When specified, plain is automatically added. xctool must be installed on agent hosts. Learn more about xctool.
Note: xctool is deprecated and does not work with Xcode 8.


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