Introduction
Xamarin.Forms - Crashes in Visual Studio App Center
In this article, you will learn how to collect crash reports using Visual Studio App Center in Xamarin.Forms. Xamarin.Forms code runs on multiple platforms - each of which has its own filesystem. This means that the process of 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.
Visual Studio App Center
Xamarin.Forms - Crashes in Visual Studio 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
  1. Android
  2. iOS
  3. React Native
  4. UWP
  5. Xamarin
  6. macOS
  7. Cordova
Xamarin.Forms - Crashes in Visual Studio App Center
App Center Services
  • Build
  • Diagnostics (Formerly Crashes)
  • Test
  • Analytics
  • Distribute
  • Push Notifications
Xamarin.Forms - Crashes in Visual Studio App Center
Crashes
Crashes happen when a runtime exception occurs from an unexpected event. Usually, a crash terminates the app. These are the errors not handled by a try/catch block. When a crash occurs, App Center will record the details of the crash, then the state of the app and device automatically generate a crash log based on the records. These logs contain valuable information about the crash which helps us fix the crash.
Prerequisites
  • Visual Studio 2017(Windows or Mac)
  • Visual Studio App Center Account
Setting up a Xamarin.Forms Project
Start by creating a new Xamarin.Forms project. You’ll learn more by going through the steps yourself. Choose the Xamarin.Forms App Project type under Cross-platform/App in the New Project dialog.
Xamarin.Forms - Crashes in Visual Studio App Center
Name your app, select “Use Shared Library” for shared code, and target both - Android and iOS.
Xamarin.Forms - Crashes in Visual Studio App Center
You probably want your project and solution to use the same name as your app. Put it in your preferred folder for projects and click Create.
Xamarin.Forms - Crashes in Visual Studio App Center
You now have a basic Xamarin.Forms app. Click the "Play" button to try it out.
Xamarin.Forms - Crashes in Visual Studio App Center
Create an app in the App Center (iOS)
In this step, create an app in the App Center by going through the following link.
Now, sign in using your preferred account.
Xamarin.Forms - Crashes in Visual Studio App Center
Add New app
In this step, give your app Name (Ex: MyApp) and description.
OS iOS
Platform Xamarin
Afterward, click Add New app.
Xamarin.Forms - Crashes in Visual Studio App Center
Now, your App Center app is ready. You can use it now.
Xamarin.Forms - Crashes in Visual Studio App Center
Setting up the User Interface
Go to MainPage.Xaml and write the following code.
MainPage.xaml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:XamarinAppCenter" x:Class="XamarinAppCenter.MainPage">
  3. <StackLayout>
  4. <StackLayout HorizontalOptions="Center" VerticalOptions="Start">
  5. <Image Margin="0,50,0,0" x:Name="imgBanner" Source="banner.png" ></Image>
  6. <Image Margin="0,0,0,10" x:Name="imgAppCenter" HeightRequest="200" Source="Appcenter.jpg" ></Image>
  7. <Label Margin="0,0,0,10" Text="App Center Crash Report" FontAttributes="Bold" FontSize="Large" TextColor="#CA6F1E" HorizontalTextAlignment="Center" ></Label>
  8. <Button x:Name="btnCrash" Text="Crash Me" Clicked="btnCrash_Clicked" />
  9. </StackLayout>
  10. </StackLayout>
  11. </ContentPage>
Click the Play button to try it out.
Xamarin.Forms - Crashes in Visual Studio App Center
Add AppCenter Crashes NuGet
In this step, add AppCenter Crashes to your project. You can install Microsoft.AppCenter.Crashes via NuGet, or you can browse the source code on GitHub.
Go to Solution Explorer and select your solution. Right-click and select "Manage NuGet Packages for Solution". Search "Microsoft.AppCenter.Crashes" and add Package. Remember to install it for each project (PCL, Android, iO, and UWP).
Xamarin.Forms - Crashes in Visual Studio App Center
AppCenter.Crashes requires platform-specific setup

Xamarin.forms PCL
The following steps are necessary for PCL.
In the PCL project's App.xaml.cs that is launched AppCenter.Crashes must be initialized in the OnStart() method.
App.xaml.cs
  1. using Microsoft.AppCenter;
  2. using Microsoft.AppCenter.Crashes;
  3. [assembly: XamlCompilation(XamlCompilationOptions.Compile)]
  4. namespace XamarinAppCenter
  5. {
  6. public partial class App : Application
  7. {
  8. public App()
  9. {
  10. InitializeComponent();
  11. MainPage = new MainPage();
  12. }
  13. protected override void OnStart()
  14. {
  15. // Handle when your app starts
  16. AppCenter.Start("ios=d0bde07f-****-4e43-****-1fb50b1023fb;" +
  17. "uwp={Your UWP App secret here};" +
  18. "android={Your Android App secret here}",
  19. typeof(Crashes));
  20. }
  21. protected override void OnSleep()
  22. {
  23. // Handle when your app sleeps
  24. }
  25. protected override void OnResume()
  26. {
  27. // Handle when your app resumes
  28. }
  29. }
  30. }
iOS
The following steps are necessary for iOS.
In the iOS project's AppDelegate that is launched AppCenter.Crashes must be initialized in the FinishedLaunching() method.
AppDelegate.cs
  1. public override bool FinishedLaunching(UIApplication app, NSDictionary options)
  2. {
  3. global::Xamarin.Forms.Forms.Init();
  4. LoadApplication(new App());
  5. AppCenter.Start("d0bde07f-****-4e43-****-1fb50b1023fb", typeof(Crashes));
  6. return base.FinishedLaunching(app, options);
  7. }
Android
You need to create another app in the App Center with OS option as Android.
https://appcenter.ms/
UWP
You need to create another app in the App Center with OS option as Windows.
https://appcenter.ms/
Crash
In this step, write the following code for a simple crash.
MainPage.xaml.cs
  1. using Xamarin.Forms;
  2. namespace XamarinAppCenter
  3. {
  4. public partial class MainPage : ContentPage
  5. {
  6. public MainPage()
  7. {
  8. InitializeComponent();
  9. }
  10. void btnCrash_Clicked(object sender, System.EventArgs e)
  11. {
  12. throw new NotImplementedException();
  13. }
  14. }
  15. }
Click the Play button to try it out.
Xamarin.Forms - Crashes in Visual Studio App Center
Crash Details
Xamarin.Forms - Crashes in Visual Studio App Center
Crash Group Details
Xamarin.Forms - Crashes in Visual Studio App Center
I hope you have understood how to collect Crash Reports using Visual Studio App Center in Xamarin.Forms.
Thanks for reading. Please share comments and feedback.