Xamarin.iOS task

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 - TFS 2015

Use this task in a pipeline to build an iOS app with Xamarin on macOS. For more information, see the Xamarin guidance and Sign your app during CI.



YAML snippet

# Xamarin.iOS
# Build an iOS app with Xamarin on macOS
- task: XamariniOS@2
    #solutionFile: '**/*.sln' 
    #configuration: 'Release' 
    #clean: false # Optional
    #packageApp: true 
    #buildForSimulator: false # Optional
    #runNugetRestore: false 
    #args: # Optional
    #workingDirectory: # Optional
    #mdtoolFile: # Optional
    #signingIdentity: # Optional
    #signingProvisioningProfileID: # Optional


Argument Description
(Required) Relative path from the repository root of the Xamarin.iOS solution or csproj project to build. May contain wildcards.
Default value: **/*.sln
Argument aliases: solutionFile
(Required) Standard configurations are Ad-Hoc, AppStore, Debug, Release.
Default value: Release
(Optional) Run a clean build (/t:clean) prior to the build.
Default value: false
Create app package
(Required) Indicates whether an IPA should be generated as a part of the build.
Default value: true
Build for iOS Simulator
(Optional) Optionally build for the iOS Simulator instead of physical iOS devices.
Default value: false
Argument aliases: buildForSimulator
Run NuGet restore
(Required) Optionally run nuget restore on the Xamarin iOS solution to install all referenced packages before build. The 'nuget' tool in the PATH of the build agent machine will be used. To use a different version of NuGet or set additional arguments, use the NuGet Tool Installer task.
Default value: false
(Optional) Additional command line arguments that should be used to build.
Working directory
(Optional) Working directory in which builds will run. When empty, the root of the repository is used.
Argument aliases: workingDirectory
Build tool path
(Optional) Optionally supply the full path to MSBuild (the Visual Studio for Mac build tool). When empty, the default MSBuild path is used.
Argument aliases: mdtoolFile, mdtoolLocation
Signing identity
(Optional) Optionally override the signing identity that will be used to sign the build. If nothing is entered, the setting in the project will be used.
Argument aliases: signingIdentity
Provisioning profile UUID
(Optional) Optional UUID of an installed provisioning profile to be used for this build.
Argument aliases: signingProvisioningProfileID

Task control options


Build your Xamarin app

Open source

This task is open source on GitHub. Feedback and contributions are welcome.


Do I need an agent?

You need at least one agent to run your build or release.

I'm having problems. How can I troubleshoot them?

See Troubleshoot Build and Release.

I can't select a default agent pool and I can't queue my build or release. How do I fix this?

See Agent pools.

My NuGet push task is failing with the following error: "Error: unable to get local issuer certificate". How can I fix this?

This can be fixed by adding a trusted root certificate. You can either add the NODE_EXTRA_CA_CERTS=file environment variable to your build agent, or you can add the NODE.EXTRA.CA.CERTS=file task variable in your pipeline. See Node.js documentation for more details about this variable. See Set variables in a pipeline for instructions on setting a variable in your pipeline.

I use TFS on-premises and I don't see some of these features. Why not?

Some of these features are available only on Azure Pipelines and not yet available on-premises. Some features are available on-premises if you have upgraded to the latest version of TFS.