Xamarin is an open-source platform for building cutting-edge and effective applications for different cross platforms like Android, iOS and Windows with .NET using single shared codebase.
In this blog I am using Azure DevOps cloud to build an application, below fig (a) shows the sample code in azure repos.
Build pipeline creation in azure DevOps:
Connect the source code repository and configure the pipeline using the pre-defined job templates or starter pipeline to write the YAML pipeline.
In this pipeline configuration I have selected the template Xamarin.Android pipeline shown in fig (b) above and used the Microsoft hosted agent, modified the pipeline for downloading the keystore file from library and signing the apk file shown in fig(c) below.
Xamarin Android task in the build pipeline has following options Create App Package should be check marked and project file should be mentioned correctly, i.e AwesomeApp.Android.csproj in current repo. As wildcards are supported, I have used a **/*droid*.csproj shown in below fig (d).
If project includes different modules and need to build specific modules only, then specify the target. I have chosen default option in above fig (d). Optionally provided an output directory for the build, build configuration is release in the current pipeline configuration. Selected the MSBuild version, MSBuild architecture, supply additional arguments for MSbuild, in the current pipeline configuration it is default. Pick the JDK to be used during the build by selecting a JDK version.
Similarly, we can use installing Apple provisioning profile, installing Apple Certificate for signing and provisioning, Xamarin iOS task to build iOS app and publish it to pipelines using publish artifact task.
The integration of Azure DevOps with Xamarin for an Android project is covered in this blog, along with a hint of an iOS project.