Xcode@2 - Xcode Build v2 task
Use this task to build an Xcode workspace on macOS.
Syntax
# Xcode Build v2
# Build an Xcode workspace on Mac OS.
- task: Xcode@2
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
packageTool: 'xcodebuild' # 'xcrun' | 'xcodebuild'. Required. Create Package (IPA) using. Default: xcodebuild.
#archivePath: # string. Optional. Use when packageTool == xcodebuild. Archive Path.
#exportPath: 'output/$(SDK)/$(Configuration)' # string. Optional. Use when packageTool == xcodebuild. Export Path. Default: output/$(SDK)/$(Configuration).
#exportOptions: 'auto' # 'auto' | 'plist' | 'specify'. Optional. Use when packageTool == xcodebuild. 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.
# 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.
# xctool (deprecated)
#useXctool: # boolean. Use xctool.
#xctoolReporter: # string. xctool Test Reporter Format.
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 | 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 |