Xcode@3 - Xcode Build v3 task

Use this task to build an Xcode workspace on macOS.

Syntax

# Xcode Build v3
# Build an Xcode workspace on macOS.
- task: Xcode@3
  inputs:
    actions: 'build' # string. Required. Actions. Default: build.
    #configuration: '$(Configuration)' # string. Configuration. Default: $(Configuration).
    #sdk: '$(SDK)' # string. SDK. Default: $(SDK).
    #xcWorkspacePath: '**/*.xcodeproj/*.xcworkspace' # string. Workspace/Project Path. Default: **/*.xcodeproj/*.xcworkspace.
    #scheme: # string. Scheme. 
    #packageApp: true # boolean. Create App Package. Default: true.
  # Package Options
    #archivePath: # string. Archive Path. 
    #exportPath: 'output/$(SDK)/$(Configuration)' # string. Export Path. Default: output/$(SDK)/$(Configuration).
    #exportOptions: 'auto' # 'auto' | 'plist' | 'specify'. Export Options. Default: auto.
    #exportMethod: 'development' # string. Required when exportOptions == specify. Export Method. Default: development.
    #exportTeamId: # string. Optional. Use when exportOptions == specify. Team ID. 
    #exportOptionsPlist: # string. Required when exportOptions == plist. Export Options Plist. 
    #exportArgs: # string. Export Arguments. 
  # Signing & Provisioning
    #xcode8AutomaticSigning: false # boolean. Automatic Signing. Default: false.
    #teamId: # string. Optional. Use when xcode8AutomaticSigning = true. Team ID. 
    #signMethod: 'file' # 'file' | 'id'. Override Using. Default: file.
    #iosSigningIdentity: # string. Optional. Use when signMethod = id. Signing Identity. 
    #unlockDefaultKeychain: false # boolean. Optional. Use when signMethod = id. Unlock Default Keychain. Default: false.
    #defaultKeychainPassword: # string. Optional. Use when signMethod = id. Default Keychain Password. 
    #provProfileUuid: # string. Optional. Use when signMethod = id. Provisioning Profile UUID. 
    #p12: # string. Optional. Use when signMethod = file. P12 Certificate File. 
    #p12pwd: # string. Optional. Use when signMethod = file. P12 Password. 
    #provProfile: # string. Optional. Use when signMethod = file. Provisioning Profile File. 
    #removeProfile: false # boolean. Optional. Use when signMethod = file. Remove Profile After Build. Default: false.
  # Advanced
    #args: # string. Arguments. 
    #cwd: # string. Working Directory. 
    outputPattern: 'output/$(SDK)/$(Configuration)' # string. Required. Output Directory. Default: output/$(SDK)/$(Configuration).
    #xcodeDeveloperDir: # string. Xcode Developer Path. 
    #useXcpretty: false # boolean. Use xcpretty. Default: false.
    #publishJUnitResults: false # boolean. Publish to VSTS/TFS. Default: false.

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 Agent, DeploymentGroup
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