title | description | keywords | author | ms.author | ms.date | ms.topic | ms.assetid | ms.service | ms.custom |
---|---|---|---|---|---|---|---|---|---|
Windows Support |
An overview of App Center's Windows support |
crashes, diagnostics, errors, Windows, UWP, WinRT, WPF, Silverlight |
lucen-ms |
lucen |
03/16/2020 |
article |
8d48c68e-3fca-4dc4-b7d5-5f4474f8734f |
vs-appcenter |
analytics |
[!INCLUDE Retirement announcement for App Center]
App Center currently supports diagnostics for UWP, WPF, and WinForms applications. This section explains the new experience for UWP apps as part of the 2.5.0 SDK release. For more information on WPF and WinForms applications, see diagnostics features and WPF/WinForms SDK.
App Center supports the full diagnostics feature set for both sideloaded and Windows Store UWP apps using the 2.5.0 SDK or later versions. To enable App Center’s diagnostics for your UWP app, follow App Center's UWP SDK documentation to integrate the App Center SDK. You can learn more about the complete feature set in the diagnostics features documentation.
With the 2.5.0 SDK release in October 2019, App Center released a new diagnostics experience. This section details the improvements and transition experience with the new release.
The new and improved diagnostics experience includes the following additions:
- A full symbolication experience that allows you to upload symbols in App Center. See the symbolication section below for more details.
- Support for handled exceptions
- Number of users affected per crash or error group
- Ability to add annotations per crash or error group
- Ability to mark crash and error groups as open, closed, or ignored
- Ability to download crash and error reports
- Ability to attach, view, and download one binary and one text attachment to your crash reports
- Crash and error report details per crash instance, including when the app launched, when it crashed, and what country/region and language the device used
You can learn more about each feature in the App Center diagnostics documentation.
After you update to the App Center UWP SDK Version 2.5.0, you'll see crash and error data coming into the App Center Diagnostics portal in a new and improved UI. For crash and error data displayed in the new Diagnostics UI, you need to use the APIs listed under the errors section. Learn more about how the old crashes APIs map to the new errors APIs in the API transition documentation.
UWP crash reports show the stack trace for the thread that caused the crash. When the application is using .NET Native (typically in release builds) the stack trace may contain memory addresses instead of class names, methods, file names, and line numbers needed to read and understand the crashes.
[!INCLUDE unsymbolicated crashes]
To get the memory addresses translated, you need to upload a .appxsym
file to App Center, which contains all information required for symbolication.
To obtain an .appxsym
file, you must create an app bundle as described here. Once you've created the bundle, you'll find the symbols file as an .appxsym
file inside the app bundle folder.
The App Center Build and Distribution services can automatically generate a valid symbol file and upload to the Diagnostics service. If you use App Center to build and auto distribute your app to your end users, you don't need to manually obtain and upload the symbol files to App Center.
When you publish your application to the store, the .NET Native compilation happens on server side. So, you need to download the symbols from the Partner Center.
- Locate your application in the list and click on it.
- Expand Product management menu from the left panel.
- Click on Manage packages.
- Click on Show packages on the top-right corner for the Submission (version) you want symbols for.
- Locate the package for the version you need symbols for, and click on links for all the supported architectures to download all symbols (such as the Download Windows 10 symbol file (x64) link).
Note
Your application must declare a dependency on any version of .NET Native to generate debug symbols.
This declaration should be included in the <Dependencies>
section of your AppxManifest.xml
. Example:
<PackageDependency Name="Microsoft.NET.Native.Framework.2.2" MinVersion="2.2.29512.0" Publisher="CN=Microsoft Corporation, 0=Microsoft Corporation, L=Redmond, S=Washington, C=US"/>
<PackageDependency Name="Microsoft.NET.Native.Runtime.2.2" MinVersion="2 2.28604.0" Publisher="CN=Microsoft Corporation, 0=Microsoft Corporation, L=Redmond, S=Washington, C=US"/>
[!INCLUDE symbol upload ui]
The process for uploading symbols through the API involves a series of three API calls: one to allocate space on our backend, one to upload the file, and one to update the status of the upload. The body of the first API call should set symbol_type
to UWP
.
[!INCLUDE symbol upload api]
You can also use the CLI to upload symbol files:
appcenter crashes upload-symbols --appxsym {symbol file}
[!INCLUDE ignoring symbols]
App Center doesn't support any other Windows platforms besides UWP, WPF, and WinForms. If you have a Windows app with native C++ crashes, you can upload these crashes to App Center via the upload crashes API.