Xamarin.Forms - Implement CI/CD using App Center

Delpin Susai Raj Tuesday, 13 August 2019

In this blog post, you will learn how to implement Continuous Integration(CI) and Deployment (CD) using App Center in Xamarin.Forms mobile app.


Introduction

Xamarin.Forms code runs on multiple platforms - each of which has its own filesystem. This means that reading and writing files is most easily done using the native file APIs on each platform. Alternatively, embedded resources are a simpler solution to distribute data files with an app.

App Center 

App Center has multiple services that are most commonly used by mobile developers, where multiple services act as a single integrated product. With the use of a single integrated product, you can build, test, distribute, and monitor your mobile apps, and also implement push notifications.

Support Platforms

  • Android
  • iOS
  • React Native
  • UWP
  • Xamarin
  • macOS
  • Cordova

App Center Services

  1. Build
  2. Diagnostics (Formerly Crashes)
  3. Test
  4. Analytics
  5. Distribute
  6. Push Notifications


CI - Continuous integration is the process of merging all developers work into a single main repository.

CD - Continuous delivery is a process of automatically buid and deploying your Xamarin apps to testers, or end users.

More

https://docs.microsoft.com/en-us/appcenter/build/

Prerequisites

  • Visual Studio 2017 or later (Windows or Mac)
  • App Center Account
  • Any Git Repository

Create an app in the App Center (Android)

In this step, create an app in the App Center. Go to the following link. Now, sign in using your preferred account.

https://appcenter.ms/

Add New app

In this step, give your app name (Ex: MyApp). Select OS (Android) and Platform (Xamarin). Click Add new app.

Connect to Repository

In this step connecting your source repository. You can select which Repository you used. I'm going to select Azure Devops.

Now select your repository and working branch. Which branch you are going to build continuously. You should select. I used master branch.

Build Configuration

In this step I'm going to configure, build environment. After selecting git repository branches, You will see this window. Now you can click the setting icon in your branch.

Build

In this section you configure your app build details.

Configuration    = Release
SDK version    = select Stable sdk version
Build frequency = build this branch on every push (once you push code your remote repository it will automatically build)

Environment

In this section in your app have any environment variable you can configure here.

Sign builds

In this section, Configure signing details. Upload your Keystore file here. Check following link to get Keystore file.

https://docs.microsoft.com/en-us/xamarin/android/deploy-test/signing/keystore-signature?tabs=macos

Set keystore password here.

Distribute Builds 

In this step release your app to Store or Groups, I select groups (once my build success the apk will send selected group.

Now Save & Build.

Done. You can commit your code it will automatically build and distribute your respective group or store.

I hope you have understood how to implement Continuous Integration(CI) and Deployment (CD) using App Center in Xamarin.Forms mobile app.

Thanks for reading. Please share your comments and feedback. Happy Coding :)