Training
Learning path
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Important
Visual Studio App Center is scheduled for retirement on March 31, 2025. While you can continue to use Visual Studio App Center until it is fully retired, there are several recommended alternatives that you may consider migrating to.
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:
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.
Unsymbolicated crashes are displayed in the App Center Diagnostics section so you can view some details even before uploading symbols. The missing symbols from these crashes will be shown in the "unsymbolicated" tab. If the missing symbols are uploaded, the unsymbolicated crash group will be replaced by a symbolicated crash group.
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.
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"/>
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
.
POST
request to the symbol_uploads API.
This call allocates space on our backend for your file and returns a symbol_upload_id
and an upload_url
property.curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
upload_url
property returned from the first step, make a PUT
request with the header: "x-ms-blob-type: BlockBlob"
and supply the location of your file on disk. This call uploads the file to our backend storage accounts. Learn more about PUT Blob request headers .curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
PATCH
request to the symbol_uploads API using the symbol_upload_id
property returned from the first step. In the body of the request, specify whether you want to set the status of the upload to committed
(successfully completed) the upload process, or aborted
(unsuccessfully completed).curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
Note
The symbol uploads API doesn't work for files that are larger than 256MB. Use the App Center CLI to upload these files. You can install the App Center CLI by following the instructions in our App Center CLI repo.
You can also use the CLI to upload symbol files:
appcenter crashes upload-symbols --appxsym {symbol file}
When App Center doesn't have all the symbol files to fully symbolicate crash reports, the crashes are listed in the Unsymbolicated tab. The required symbols are uploaded from this page if you have access to them.
If you can't upload the symbols, you can mark them as Ignored by selecting rows in the table and clicking the Ignore versions button. This button tells App Center to process the crashes and symbolicate them as fully as possible with the symbols on file. Once they've finished processing, they'll appear in the Crashes tab partially symbolicated. New crashes that also depend on those same symbol IDs marked as ignored will bypass the Unsymbolicated tab as they come in and flow through the system.
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.
Training
Learning path
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization