├── .acrolinx-config.edn ├── .gitattributes ├── .gitignore ├── .openpublishing.publish.config.json ├── .openpublishing.redirection.json ├── CONTRIBUTING-INTERNAL.md ├── CONTRIBUTING.md ├── LICENSE ├── LICENSE-CODE ├── README.md ├── SECURITY.md ├── ThirdPartyNotices ├── docs ├── TOC.md ├── _breadcrumb │ └── toc.yml ├── analytics │ ├── event-metrics.md │ ├── export.md │ ├── faq.md │ ├── handled-errors-events.md │ ├── images │ │ ├── Export-Storage.png │ │ ├── accesskeys.png │ │ ├── connectionstring.png │ │ ├── instrumentationkey.png │ │ ├── subfolders.png │ │ └── version-filtering.png │ ├── index.md │ ├── log-flow.md │ └── overview.md ├── api-docs │ ├── images │ │ └── authorization_withToken.png │ └── index.md ├── cli │ ├── images │ │ ├── browserToken.png │ │ └── terminalLogin.png │ └── index.md ├── dashboard │ ├── bugtracker │ │ └── index.md │ ├── creating-and-managing-apps.md │ ├── creating-and-managing-organizations.md │ ├── creating-and-managing-teams.md │ ├── email-notifications │ │ ├── index.md │ │ └── media │ │ │ ├── configureEmailNotificationApp.png │ │ │ └── configureEmailNotificationUser.png │ ├── faq.md │ ├── images │ │ ├── app-center-new-app.png │ │ ├── org-upload-icon.png │ │ └── settings-dot-menu.png │ ├── index.md │ ├── manage-apple-secrets.md │ └── webhooks │ │ ├── index.md │ │ └── media │ │ ├── createANewWebhook.gif │ │ ├── createNewWebhook.gif │ │ └── editWebhook.png ├── diagnostics │ ├── Android-Deobfuscation.md │ ├── Android-NDK.md │ ├── enabling-diagnostics.md │ ├── features.md │ ├── iOS-symbolication.md │ ├── images │ │ ├── UWP-Analytics.png │ │ ├── UWP-Crash-Groups.png │ │ ├── UWP-Crash-Instance.png │ │ ├── annotate.png │ │ ├── attachments.png │ │ ├── crash-analytics.png │ │ ├── crash-groups.png │ │ ├── crashes-query-types.png │ │ ├── crashes-results-freetext.png │ │ ├── diagnostics-overview.png │ │ ├── download.png │ │ ├── email-notifications.png │ │ ├── events.png │ │ ├── groupsoverview.png │ │ ├── new-annotate.png │ │ ├── new-attachments.png │ │ ├── new-crash-analytics.png │ │ ├── new-download.png │ │ ├── new-events.png │ │ ├── new-threads.png │ │ ├── notifications.png │ │ ├── search-overview.png │ │ ├── search-type-selection.png │ │ ├── symbols-UUID.png │ │ ├── threads.png │ │ ├── track-status.png │ │ └── upload-symbols.png │ ├── includes │ │ ├── generate-breakpad-symbols-payload.md │ │ ├── ignoring-symbols.md │ │ ├── symbol-upload-api.md │ │ ├── symbol-upload-cli.md │ │ ├── symbol-upload-ui.md │ │ └── unsymbolicated-crashes.md │ ├── index.md │ ├── limitations.md │ ├── search.md │ ├── troubleshooting.md │ ├── unmanaged-code-crash-support.md │ ├── upload-crashes-ui.md │ ├── upload-crashes.md │ ├── using-the-diagnostics-API.md │ ├── using-the-diagnostics-UI.md │ └── windows-support.md ├── distribution │ ├── auto-provisioning.md │ ├── externally-hosted-build.md │ ├── faq.md │ ├── groups.md │ ├── images │ │ ├── auto-provisioning-flow.png │ │ ├── create-service-account.jpg │ │ ├── distribution_edit-settings-icon.png │ │ ├── distribution_group-id.png │ │ ├── distribution_new-api-token.png │ │ ├── distribution_new-release-button.png │ │ ├── distribution_successful-release.png │ │ ├── image1.png │ │ ├── image10.png │ │ ├── image11.png │ │ ├── image2.png │ │ ├── image3.png │ │ ├── image4.png │ │ ├── image5.png │ │ ├── image6.png │ │ ├── image7.png │ │ ├── image8.png │ │ ├── image9.png │ │ ├── inspect_ios_console_log.png │ │ ├── installButton.png │ │ ├── publicDeepLink.png │ │ ├── release-externally-hosted-build.png │ │ ├── releaseDestination.jpg │ │ ├── vsts-deploy-app-center-api.png │ │ ├── vsts-deploy-app-center-binary.png │ │ ├── vsts-deploy-app-center-notes.png │ │ └── vsts-deploy-app-center-slug.png │ ├── inappupdates.md │ ├── index.md │ ├── installation.md │ ├── sparkleupdates.md │ ├── stores │ │ ├── apple.md │ │ ├── apple │ │ │ ├── app_store.md │ │ │ ├── testflight_external.md │ │ │ └── testflight_internal.md │ │ ├── googleplay.md │ │ ├── index.md │ │ ├── insight │ │ │ └── google │ │ │ │ ├── googlePlayAppDoesntExist.md │ │ │ │ ├── googlePlayAppDoesntHaveBuild.md │ │ │ │ ├── googlePlayAppSigningNotEnabled.md │ │ │ │ ├── googlePlayInsufficientPermissions.md │ │ │ │ └── googlePlayPackageForbidden.md │ │ └── intune.md │ ├── testers │ │ ├── images │ │ │ ├── I-add-device.png │ │ │ ├── a-appdetails-app.png │ │ │ ├── a-appdetails-installportal.png │ │ │ ├── a-store-listing.png │ │ │ ├── i-app-detail.png │ │ │ ├── i-configview.png │ │ │ ├── i-profile.png │ │ │ ├── m-appdetail.png │ │ │ └── m-appsview.png │ │ ├── index.md │ │ ├── testing-android.md │ │ ├── testing-ios.md │ │ └── testing-macos.md │ ├── uploading.md │ └── vsts-deploy.md ├── docfx.json ├── errors │ ├── featureset.md │ ├── images │ │ └── groupsoverview.png │ └── index.md ├── gdpr │ ├── FAQ.md │ ├── analytics-consent.md │ ├── analytics-export.md │ ├── analytics-forget-me.md │ ├── data-from-your-end-users.md │ ├── diagnostics-consent.md │ ├── diagnostics-delete.md │ ├── diagnostics-export.md │ ├── does-it-apply-to-me.md │ ├── errors-export.md │ ├── errors-forget-me.md │ ├── how-to-stop-collecting-data.md │ ├── index.md │ ├── install-id.md │ ├── test-export.md │ ├── test-forget-me.md │ └── your-data.md ├── general │ ├── account.md │ ├── allowlist.md │ ├── app-center-security.md │ ├── azure-subscriptions.md │ ├── browsers.md │ ├── changelog.md │ ├── configuring-aad-conditional-access.md │ ├── connecting-to-azure-active-directory.md │ ├── images │ │ ├── account_is_already_associated_with_another_identity_provier_error.png │ │ ├── add-aad-tenant-1.png │ │ ├── add-aad-tenant-2.png │ │ ├── add-aad-tenant-3.png │ │ ├── conditional-access-1.png │ │ ├── conditional-access-2.png │ │ ├── sign_in.png │ │ ├── sign_in_arrow.png │ │ ├── sign_up_arrow.png │ │ └── sign_up_msa_arrow.png │ ├── index.md │ ├── platform-limits.md │ ├── platform-service-matrix.md │ └── support-center.md ├── help.md ├── images │ ├── app-center-feedback-options.png │ ├── app-center-support-chat.png │ └── app-center-support-form.png ├── includes │ └── retirement.md ├── index.yml ├── media │ ├── logo_ios.svg │ ├── logo_react.svg │ ├── logo_tvos.svg │ └── logo_unity.svg ├── quickstarts │ ├── android │ │ ├── analytics.md │ │ ├── crashes.md │ │ ├── distribute.md │ │ ├── getting-started.md │ │ ├── images │ │ │ └── newKeystore.png │ │ └── overview.md │ ├── index.md │ ├── ios │ │ ├── analytics.md │ │ ├── crashes.md │ │ ├── distribute.md │ │ ├── getting-started.md │ │ ├── images │ │ │ ├── AppID_push_ios.png │ │ │ ├── Download_symbols_ios.png │ │ │ ├── Enable_push_ios.png │ │ │ ├── Select_device_ios.png │ │ │ └── Signing_builds_ios.png │ │ └── overview.md │ ├── learning-resources.md │ └── macOS │ │ ├── analytics.md │ │ ├── crashes.md │ │ ├── distribute.md │ │ ├── getting-started.md │ │ ├── images │ │ ├── AppID_push_macOS.png │ │ ├── Download_symbols_macOS.png │ │ ├── Enable_push_macOS.png │ │ └── Signing_builds_macOS.png │ │ └── overview.md ├── retirement.md └── sdk │ ├── analytics │ ├── android.md │ ├── includes │ │ ├── apple-common-methods.md │ │ └── manuall-session-tracker.md │ ├── ios.md │ ├── macos.md │ ├── react-native.md │ ├── tvos.md │ ├── unity.md │ ├── windows.md │ └── xamarin.md │ ├── crashes │ ├── android.md │ ├── includes │ │ ├── apple-common-methods-1.md │ │ └── apple-common-methods-2.md │ ├── ios.md │ ├── macos.md │ ├── react-native.md │ ├── tvos.md │ ├── unity.md │ ├── uwp.md │ ├── wpf-winforms.md │ └── xamarin.md │ ├── data-collected.md │ ├── distribute │ ├── android.md │ ├── images │ │ └── unity_distribute_debug.png │ ├── includes │ │ ├── android-10-package-installer-restrictions.md │ │ └── ios-manual-integration.md │ ├── ios.md │ ├── unity.md │ └── xamarin.md │ ├── getting-started │ ├── android.md │ ├── images │ │ └── unity_configuration.png │ ├── includes │ │ ├── android-backup-rules-android-12.md │ │ ├── android-backup-rules-android.md │ │ ├── apple-configure-appcenter.md │ │ ├── ios-macos-extensions.md │ │ ├── swift-package-manager.md │ │ ├── windows-configure-appcenter.md │ │ └── xcframeworks.md │ ├── ios-extensions.md │ ├── ios.md │ ├── macos-extensions.md │ ├── macos.md │ ├── migration │ │ └── apple-sdk-update.md │ ├── react-native.md │ ├── tvos.md │ ├── unity.md │ ├── uwp.md │ ├── wpf-winforms.md │ └── xamarin.md │ ├── includes │ ├── android-see-async.md │ ├── app-secret-secure.md │ ├── app-secret-warning.md │ └── unity-see-async.md │ ├── index.md │ ├── limitations.md │ ├── other-apis │ ├── android.md │ ├── includes │ │ ├── android-async.md │ │ ├── apple.md │ │ ├── unity-async.md │ │ ├── user-id.md │ │ └── windows.md │ ├── ios.md │ ├── macos.md │ ├── react-native.md │ ├── tvos.md │ ├── unity.md │ ├── uwp.md │ ├── wpf-winforms.md │ └── xamarin.md │ └── troubleshooting │ ├── android.md │ ├── ios.md │ ├── macos.md │ ├── react-native.md │ ├── tvos.md │ ├── unity.md │ ├── uwp.md │ └── xamarin.md ├── redirectionHelper.sh ├── styleguide ├── images │ ├── alerts.png │ └── responsivedesign.gif ├── template.md └── voice-tone.md └── upgrade /.acrolinx-config.edn: -------------------------------------------------------------------------------- 1 | {:allowed-branchname-matches ["main" "master" "release-.*"] 2 | :allowed-filename-matches ["docs"]} 3 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Set the default behavior, in case people don't have core.autocrlf set. 2 | * text=auto 3 | 4 | # Explicitly declare text files you want to always be normalized and converted 5 | # to native line endings on checkout. 6 | *.c text 7 | *.h text 8 | 9 | # Declare files that will always have CRLF line endings on checkout. 10 | *.sln text eol=crlf 11 | 12 | # Denote all files that are truly binary and should not be modified. 13 | *.png binary 14 | *.jpg binary -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | log/ 2 | obj/ 3 | _site/ 4 | .optemp/ 5 | _themes*/ 6 | 7 | .openpublishing.buildcore.ps1 8 | 9 | # Folder configuration on Mac 10 | .DS_Store 11 | Thumbs.db 12 | -------------------------------------------------------------------------------- /.openpublishing.publish.config.json: -------------------------------------------------------------------------------- 1 | { 2 | "docsets_to_publish": [ 3 | { 4 | "docset_name": "vs-appcenter", 5 | "build_source_folder": "docs", 6 | "build_output_subfolder": "vs-appcenter", 7 | "locale": "en-us", 8 | "monikers": [], 9 | "moniker_ranges": [], 10 | "xref_query_tags": [ 11 | "/dotnet" 12 | ], 13 | "open_to_public_contributors": true, 14 | "type_mapping": { 15 | "Conceptual": "Content", 16 | "ManagedReference": "Content", 17 | "RestApi": "Content" 18 | }, 19 | "build_entry_point": "docs", 20 | "template_folder": "_themes" 21 | } 22 | ], 23 | "notification_subscribers": [], 24 | "sync_notification_subscribers": [ 25 | "lucen@microsoft.com" 26 | ], 27 | "branches_to_filter": [], 28 | "git_repository_url_open_to_public_contributors": "https://github.com/MicrosoftDocs/appcenter-docs", 29 | "git_repository_branch_open_to_public_contributors": "live", 30 | "skip_source_output_uploading": false, 31 | "need_preview_pull_request": true, 32 | "dependent_repositories": [ 33 | { 34 | "path_to_root": "_themes", 35 | "url": "https://github.com/Microsoft/templates.docs.msft", 36 | "branch": "main", 37 | "branch_mapping": {} 38 | }, 39 | { 40 | "path_to_root": "_themes.pdf", 41 | "url": "https://github.com/Microsoft/templates.docs.msft.pdf", 42 | "branch": "main", 43 | "branch_mapping": {} 44 | } 45 | ], 46 | "branch_target_mapping": { 47 | "live": [ 48 | "Publish", 49 | "Pdf" 50 | ] 51 | }, 52 | "targets": { 53 | "pdf": { 54 | "template_folder": "_themes.pdf" 55 | } 56 | }, 57 | "docs_build_engine": {}, 58 | "contribution_branch_mappings": {}, 59 | "need_generate_pdf_url_template": true, 60 | "need_generate_pdf": false, 61 | "need_generate_intellisense": false 62 | } -------------------------------------------------------------------------------- /LICENSE-CODE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | Copyright (c) Microsoft Corporation 3 | 4 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 5 | associated documentation files (the "Software"), to deal in the Software without restriction, 6 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, 7 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, 8 | subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all copies or substantial 11 | portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT 14 | NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 15 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 16 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 17 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # App Center documentation 2 | Welcome! This repo contains source files for App Center technical documentation. The topics are published to [App Center documentation](https://learn.microsoft.com/appcenter). 3 | 4 | ## Code of conduct 5 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information, see the [Code of conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/), or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. 6 | 7 | ## Contributing to the documentation 8 | We welcome your contributions to help us improve the App Center docs. All the articles in this repository use GitHub flavored markdown. 9 | 10 | To contribute to this documentation, see the [Contributing guide](CONTRIBUTING.md). 11 | 12 | If you're an internal docs contributor (Microsoft or GitHub), refer to the [Contributing guide – Internal](CONTRIBUTING-INTERNAL.md) 13 | 14 | Several feature areas of App Center have their own folders in this repo, such as **crashes** for topics on the Crash Reporting service, and so forth. The **/images** subfolder in each folder contains art files for the topics. The [Contributing guide](CONTRIBUTING.md) has more information. 15 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Security 4 | 5 | Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). 6 | 7 | If you believe you have found a security vulnerability in any Microsoft-owned repository that meets [Microsoft's definition of a security vulnerability](https://aka.ms/opensource/security/definition), please report it to us as described below. 8 | 9 | ## Reporting Security Issues 10 | 11 | **Please do not report security vulnerabilities through public GitHub issues.** 12 | 13 | Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://aka.ms/opensource/security/create-report). 14 | 15 | If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the [Microsoft Security Response Center PGP Key page](https://aka.ms/opensource/security/pgpkey). 16 | 17 | You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://aka.ms/opensource/security/msrc). 18 | 19 | Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: 20 | 21 | * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) 22 | * Full paths of source file(s) related to the manifestation of the issue 23 | * The location of the affected source code (tag/branch/commit or direct URL) 24 | * Any special configuration required to reproduce the issue 25 | * Step-by-step instructions to reproduce the issue 26 | * Proof-of-concept or exploit code (if possible) 27 | * Impact of the issue, including how an attacker might exploit the issue 28 | 29 | This information will help us triage your report more quickly. 30 | 31 | If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://aka.ms/opensource/security/bounty) page for more details about our active programs. 32 | 33 | ## Preferred Languages 34 | 35 | We prefer all communications to be in English. 36 | 37 | ## Policy 38 | 39 | Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://aka.ms/opensource/security/cvd). 40 | 41 | 42 | -------------------------------------------------------------------------------- /ThirdPartyNotices: -------------------------------------------------------------------------------- 1 | ##Legal Notices 2 | Microsoft and any contributors grant you a license to the Microsoft documentation and other content 3 | in this repository under the [Creative Commons Attribution 4.0 International Public License](https://creativecommons.org/licenses/by/4.0/legalcode), 4 | see the [LICENSE](LICENSE) file, and grant you a license to any code in the repository under the [MIT License](https://opensource.org/licenses/MIT), see the 5 | [LICENSE-CODE](LICENSE-CODE) file. 6 | 7 | Microsoft, Windows, Microsoft Azure and/or other Microsoft products and services referenced in the documentation 8 | may be either trademarks or registered trademarks of Microsoft in the United States and/or other countries. 9 | The licenses for this project do not grant you rights to use any Microsoft names, logos, or trademarks. 10 | Microsoft's general trademark guidelines can be found at https://go.microsoft.com/fwlink/?LinkID=254653. 11 | 12 | Privacy information can be found at https://privacy.microsoft.com/ 13 | 14 | Microsoft and any contributors reserve all others rights, whether under their respective copyrights, patents, 15 | or trademarks, whether by implication, estoppel or otherwise. -------------------------------------------------------------------------------- /docs/_breadcrumb/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Docs 2 | tocHref: / 3 | topicHref: / 4 | items: 5 | - name: Visual Studio 6 | tocHref: /visualstudio/products/ 7 | topicHref: /visualstudio/products 8 | items: 9 | - name: App Center 10 | tocHref: /appcenter/ 11 | topicHref: /appcenter 12 | -------------------------------------------------------------------------------- /docs/analytics/handled-errors-events.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How to Use Events for Handled Errors 3 | description: Using events for error handling 4 | keywords: app center, analytics, exceptions 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 03/22/2017 8 | ms.topic: article 9 | ms.assetid: 8F9AE70D-9153-4EFE-8173-BA1749F4BB0D 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # How to Use Events for Handled Errors 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | > [!IMPORTANT] 19 | > Handled Errors aren't available yet as part of the Crashes service in App Center. One workaround is to use Custom Events. This isn't how "Handled Errors" are intended to be supported and it isn't the main purpose of Events either. However, this page contains advice on how to best use Events to report on handled errors. 20 | 21 | In this section, you'll learn how to use events to get information about your handled errors. Such events for handled errors are helpful if you're interested in counting the number of times an error has happened. You'll get six different measures per event: count, count change, users, user change, count per user, and count per session. 22 | 23 | ## Event name 24 | 25 | We recommend giving the event a name that provides some contextual information. Handled errors can be generic, so it’s necessary to provide some extra information that will identify an error in a more distinct way. An example of contextual information is the file/method name where the error is handled. 26 | 27 | **Example**: 28 | 29 | Let’s imagine a situation where you want to understand how often your users fail to connect to the WiFi. 30 | “UnknownHostException:ConnectWiFi”, where “UnknownHostException” is the generic name of the exception and “ConnectWiFi” is the method name. 31 | 32 | ## Event properties 33 | 34 | If you’d like to understand more about the distribution of these handled errors for different characteristics (e.g. device type, OS version, build number, or manufacturer), you can use the properties and property values. 35 | 36 | **Example**: 37 | 38 | Property Key: OS Version 39 | 40 | Property Value 1: 10.2.1 41 | 42 | Property Value 2: 10.3 43 | 44 | Property Value 3: 9.3.5 45 | 46 | Depending on your specific use case, you might want to include these as part of the event name instead. However, the number of event names is limited to 200. It's important to know what you want to answer to get the most value from using events for handled errors. 47 | If you want to filter by version, you don't need to include that as part of the property, as you can use the dropdown provided on top right of the event page. 48 | 49 | ![Use the APP VERSIONS list to select which version or versions to report](~/analytics/images/version-filtering.PNG) 50 | 51 | If you want to include the exception message, you can include it as another property. 52 | 53 | **Example**: 54 | 55 | Property Key: Exception Message 56 | 57 | Property Value: Exception in thread "main" java.lang.RuntimeException 58 | 59 | 60 | The number of characters in the property values is limited to 64 characters, so you'll probably need to truncate or filter the string. Finally, you shouldn't include the stack trace as part of the event name or property values for the same reason. 61 | -------------------------------------------------------------------------------- /docs/analytics/images/Export-Storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/analytics/images/Export-Storage.png -------------------------------------------------------------------------------- /docs/analytics/images/accesskeys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/analytics/images/accesskeys.png -------------------------------------------------------------------------------- /docs/analytics/images/connectionstring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/analytics/images/connectionstring.png -------------------------------------------------------------------------------- /docs/analytics/images/instrumentationkey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/analytics/images/instrumentationkey.png -------------------------------------------------------------------------------- /docs/analytics/images/subfolders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/analytics/images/subfolders.png -------------------------------------------------------------------------------- /docs/analytics/images/version-filtering.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/analytics/images/version-filtering.png -------------------------------------------------------------------------------- /docs/analytics/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Analytics 3 | description: Help using the Analytics feature on App Center 4 | keywords: app center, analytics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 8/12/2019 8 | ms.topic: article 9 | ms.assetid: b39854a6-c523-4a66-bef6-9b5da03ba256 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Analytics 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | App Center Analytics will help you understand more about your app users and their behavior when using your app. 19 | 20 | ## Key Features 21 | 22 | | Scenario | Description | 23 | |--|--| 24 | | One-line integration for [Android](~/sdk/getting-started/android.md), [iOS](~/sdk/getting-started/ios.md), [macOS](~/sdk/getting-started/macos.md), [React Native](~/sdk/getting-started/react-native.md), [tvOS](~/sdk/getting-started/tvos.md), [UWP](~/sdk/getting-started/uwp.md), [WPF/WinForms](~/sdk/getting-started/wpf-winforms.md), and [MAUI/Xamarin](~/sdk/getting-started/xamarin.md). | Simple steps to integrate the SDK, which provides you out-of-the-box insights about your users.| 25 | | [Overview](~/analytics/overview.md) | Key metrics about your users and their app usage.| 26 | | [Custom Events](~/analytics/event-metrics.md)| Understand the actions that your users take in your app.| 27 | | [Log Flow](~/analytics/log-flow.md)| See incoming logs in real time to check whether your SDK is properly integrated.| 28 | | [Export to Azure](~/analytics/export.md)| Continuously export your raw data into Azure for extended retention and query capabilities.| 29 | 30 | ## Integrate the Analytics SDK to get started 31 | 32 | To get started with Analytics, integrate the App Center SDK. By doing this, you'll get out-of-the-box insights about your users. 33 | To get started with our SDK, follow the platform-specific documentation at [Android](~/sdk/getting-started/android.md), [iOS](~/sdk/getting-started/ios.md), [macOS](~/sdk/getting-started/macos.md), [React Native](~/sdk/getting-started/react-native.md), [tvOS](~/sdk/getting-started/tvos.md), [UWP](~/sdk/getting-started/uwp.md), [WPF/WinForms](~/sdk/getting-started/wpf-winforms.md), and [MAUI/Xamarin](~/sdk/getting-started/xamarin.md). 34 | 35 | ## General information 36 | 37 | Check out our [Frequently Asked Questions](~/analytics/faq.md) for general questions or concerns. 38 | 39 | ## Custom Events 40 | 41 | Learn more about the interaction of your users with your app by tracking [Custom Events](~/analytics/event-metrics.md) in your app. To do this, follow our [SDK Documentation](~/sdk/index.md) for [Android](~/sdk/analytics/android.md), [iOS](~/sdk/analytics/ios.md), [React Native](~/sdk/analytics/react-native.md), [MAUI/Xamarin](~/sdk/analytics/xamarin.md), [Windows](~/sdk/analytics/windows.md), [macOS](~/sdk/analytics/macos.md), and [tvOS](~/sdk/analytics/tvos.md). 42 | 43 | ## Export 44 | 45 | [Continuously Export](~/analytics/export.md) all your Analytics data into Azure Blob Storage or Application Insights. This allows you to keep your data as long as you need, as well as provide further insights into your data with powerful filtering, data visualizations, and query capabilities. 46 | -------------------------------------------------------------------------------- /docs/analytics/log-flow.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Understanding the App Center Log Flow Page 3 | description: Help using the Log Flow Page on App Center 4 | keywords: app center, analytics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 04/25/2018 8 | ms.topic: article 9 | ms.assetid: be4ee0a0-cd06-486a-bef1-22b6ab5dc896 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Log Flow 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | Log Flow will show you what's being received by the backend in real time. The main use cases for log flow are: 19 | 20 | - Check if the SDK is properly integrated and if our backend is receiving data. Similar to when you do a microphone check: "Is this on?". 21 | - Ensure that the backend is receiving what the app is supposed to send. 22 | 23 | ## General information 24 | 25 | Log Flow will collect and display incoming data from the current day (in the UTC timezone). The data should appear within a few seconds after it's sent by the device with the Log Flow page open. It will automatically refresh every 3 seconds, and will load up to 100 data points. If more than 100 data points were generated by the application between 2 refreshes, the UI will indicate the "break" with an icon. 26 | 27 | To populate the log flow page, you'll need to: 28 | 29 | 1. Open the Log Flow page and wait a few seconds 30 | 2. Start sending logs from your device 31 | 32 | No previous logs will show unless this workflow above was done earlier in the same day (in the UTC timezone). Also, this process will need to be done again after 10 minutes of the page not being in focus. 33 | 34 | Log flow will show you the following information: 35 | 36 | - Start of sessions 37 | - The fact that a crash occurred 38 | - Events, including the event name and its properties 39 | 40 | All data includes a subset of the *installation ID*, which uniquely identifies devices and the time in local timezone where the log was emitted in the application. 41 | 42 | ## "Is this on?" 43 | 44 | The main use case of Log Flow is to check that the SDK was properly integrated. Open the page, send some logs, and verify whether your one-line integration worked after the first run. You should expect to see a `STARTSESSION` log with the session ID, every time the app is started. 45 | 46 | ## Checking the data received 47 | 48 | The other use case is to check that the App Center backend receives exactly what you send, such as event and event properties names and format. 49 | -------------------------------------------------------------------------------- /docs/analytics/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Understanding the App Center Overview Page 3 | description: Help using the Overview Page on App Center 4 | keywords: app center, analytics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 08/22/2021 8 | ms.topic: article 9 | ms.assetid: d6fea3a0-7a48-4c37-a972-7a803705faf5 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Overview Page 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | 19 | The goal of the Overview page is to provide you with the key metrics about your app users. This includes their devices, location, activity, and engagement. This allows you to answer questions such as: 20 | 21 | - What are the main devices being used? 22 | - Can I remove support for an old OS version? 23 | - Should I translate my app into a new language? 24 | - Are my users adopting my latest version? 25 | 26 | All the data in the Overview page can be filtered by **time range** and **app version**, so you can further drill down into your charts. The app version needs to follow the [Semver 2.0](https://semver.org/spec/v2.0.0.html) format. 27 | 28 | ## Active users 29 | 30 | Represents the number of unique app installations that launched the app in the last: 31 | 32 | - 1 calendar day for the "daily" 33 | - 7 calendar days for the "weekly" 34 | - 28 calendar days for the "monthly" 35 | 36 | A new day starts at 12am UTC. 37 | 38 | ## Engagement 39 | 40 | Engagement measures the daily sessions per user and session duration. 41 | 42 | A **session** is defined as the time from the app coming to foreground to the last event before going to the background. If no custom events are identified within 5 minutes in a session, the session won't be counted. 43 | 44 | Analytics will offer you the following information: 45 | 46 | - Daily sessions per user: Daily average number of sessions per user. 47 | - Total sessions: Total number of sessions. 48 | - Average sessions per day: Number of sessions per day averaged over the time range. 49 | - Session duration: Distribution of the number of sessions over a few duration intervals. 50 | - Average session length: Average of all the session durations in the selected time range. 51 | 52 | ## Devices and OS 53 | 54 | The Devices panel gives information about the users' devices: 55 | 56 | - Device model distribution: Shows the count and percentage of the top most used device models. 57 | - OS distribution: Shows the relative percentage of the top most used OS versions. 58 | 59 | ## Active Users per Version 60 | 61 | The Active Users per Version panel shows how many users are using a given version. It will show the latest 20 versions only. 62 | 63 | ## Countries and Languages 64 | 65 | The Countries and Languages panel displays information about devices geographical location and language settings in the device. 66 | 67 | The country/region is determined by the carrier country/region and requires the device to have a SIM card. If you're using a simulator or another device with no SIM card such as a tablet, the country/region will be "unknown" or inaccurate. 68 | 69 | The language is the one defined at the OS level by the user. 70 | -------------------------------------------------------------------------------- /docs/api-docs/images/authorization_withToken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/api-docs/images/authorization_withToken.png -------------------------------------------------------------------------------- /docs/cli/images/browserToken.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/cli/images/browserToken.png -------------------------------------------------------------------------------- /docs/cli/images/terminalLogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/cli/images/terminalLogin.png -------------------------------------------------------------------------------- /docs/dashboard/email-notifications/media/configureEmailNotificationApp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/email-notifications/media/configureEmailNotificationApp.png -------------------------------------------------------------------------------- /docs/dashboard/email-notifications/media/configureEmailNotificationUser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/email-notifications/media/configureEmailNotificationUser.png -------------------------------------------------------------------------------- /docs/dashboard/faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Dashboard Frequently Asked Questions 3 | description: Frequently asked questions about the App Center dashboard 4 | keywords: dashboard faq 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/13/2019 8 | ms.topic: article 9 | ms.assetid: 0E94BEBC-F61E-4CAB-8CDF-CC191860D59F 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Dashboard Frequently Asked Questions 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | **Where can I find my app secret?** 18 | 19 | To get your App Secret, go to your app's settings. At the top right hand corner, click on the **triple vertical dots** and select `Copy app secret` to get your App Secret. 20 | 21 | **Can I transfer apps in between users & organizations?** 22 | 23 | To transfer an app to an organization, you must be the current owner of the app, as well as an Admin in the organization you're trying to transfer the app to. To transfer an app into a different organization, see [Managing apps in the dashboard](~/dashboard/creating-and-managing-apps.md#transferring-an-app). 24 | 25 | **How can I add the same group of people to multiple apps?** 26 | 27 | [Create a team](~/dashboard/creating-and-managing-teams.md) inside an organization which allows you to quickly add groups of Collaborators to apps. 28 | 29 | **I've got an invitation to my email, but I'm not able to accept it. What should I do?** 30 | 31 | Check which email you're using to log in to the App Center portal. You can find it in [Profile Settings](https://appcenter.ms/settings/profile). The invitation link only works for the targeted email address. Otherwise, you will not be able to accept it. If necessary, ask for a new invitation to the correct email address. -------------------------------------------------------------------------------- /docs/dashboard/images/app-center-new-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/images/app-center-new-app.png -------------------------------------------------------------------------------- /docs/dashboard/images/org-upload-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/images/org-upload-icon.png -------------------------------------------------------------------------------- /docs/dashboard/images/settings-dot-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/images/settings-dot-menu.png -------------------------------------------------------------------------------- /docs/dashboard/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using App Center 3 | description: Managing your App Center account and settings 4 | author: lucen-ms 5 | ms.author: lucen 6 | ms.date: 06/09/2020 7 | ms.topic: article 8 | ms.assetid: ac3b155b-fce5-49fe-a316-7f4877ed76f0 9 | ms.service: vs-appcenter 10 | --- 11 | 12 | # Overview 13 | 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 15 | 16 | [Visual Studio App Center](https://appcenter.ms/) brings together multiple common services into a DevOps cloud solution. Developers use App Center to [Distribute](~/distribution/index.md) applications. Once the app's deployed, developers monitor the status and usage of the app using the [Analytics](~/analytics/index.md) and [Diagnostics](~/diagnostics/index.md) services. 17 | 18 | This section describes the basic concepts of App Center and ways to manage your account settings. 19 | 20 | ## Set up your App Center account 21 | ### Apps 22 | To get started, [add an app to your App Center account](~/dashboard/creating-and-managing-apps.md) or accept an invite to someone else's app. You can have different permission levels for each app: **Developer**, **Viewer**, or **Manager**. 23 | 24 | ### Organizations 25 | [Create an Organization](~/dashboard/creating-and-managing-organizations.md) to invite **Collaborators** and **Administrators** to work on your apps, and manage their permissions. 26 | 27 | ### Teams 28 | [Create Teams](~/dashboard/creating-and-managing-teams.md) within your organization to better manage large organizations and permission settings. 29 | 30 | ## Manage your account preferences and settings 31 | ### Account Profile Photos 32 | App Center uses [Gravatar](https://gravatar.com/) to manage user profile photos. To get started, [create a Gravatar account](https://gravatar.com/) using the same email for your App Center account. Once your account has been created, follow the instructions on Gravatar's website to pick your new profile image. When you return to App Center, refresh the browser to see your new profile photo. If your new profile photo doesn't immediately appear, hard refresh your browser to replace the previously cached image. 33 | 34 | ### Email Notifications 35 | [Manage your email preferences](~/dashboard/email-notifications/index.md) to sign up for automatic notifications for distributions, and crashes. 36 | 37 | ### Bug Tracker Integration 38 | [Integrate bug trackers](~/dashboard/bugtracker/index.md) like Jira, Visual Studio Team Services (VSTS), Azure DevOps, and GitHub to stay informed when your app crashes. 39 | 40 | ### Webhooks 41 | [Create and enable webhooks](~/dashboard/webhooks/index.md) to integrate with third-party applications you already use. 42 | 43 | ## Manage App Center's theme 44 | ### Dark theme (Preview) 45 | App Center can be used with a Dark theme. Under your account settings, go to the User Interface section to enable dark theme. Currently, dark theme is only available in Preview. 46 | -------------------------------------------------------------------------------- /docs/dashboard/manage-apple-secrets.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Managing your Apple ID and certificates 3 | description: Read how to securely store your Apple ID and iOS signing certificate in App Center. 4 | keywords: Secret storage, Apple ID, certicates 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 12/11/2019 8 | ms.topic: article 9 | ms.assetid: 505ce61e-7647-41cf-8500-459f110944f4 10 | ms.service: vs-appcenter 11 | ms.custom: dashboard 12 | --- 13 | 14 | # Managing your Apple ID and certificates 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | 19 | ## How does Secret storage work 20 | 21 | Your Apple ID and certificate are stored securely in an encrypted vault designed so that only App Center internal services are allowed to read the values. As with any other credentials, it isn't possible to download them from the Secret storage. However, the Apple ID owner can assign it to services in App Center. 22 | 23 | ## How do I add Apple ID and certificate to storage? 24 | 25 | You can add your Apple ID and signing certificate in two ways: 26 | 27 | 1. While going through the Distribute upload wizard 28 | 2. Navigating to **Account settings** -> **Developer accounts** and click the blue **+** button. 29 | 30 | Secrets are stored in a secure vault, to protect the confidentiality of your credentials. 31 | 32 | App Center uses your Apple ID to manage your provisioning profile and your signing certificate to re-sign a release. 33 | 34 | ## How can app members use my Apple ID? 35 | 36 | When you add an Apple ID to an App Center service, like App Store connect or automatically manage devices. The Apple ID is made available to app members, and they'll use it for tasks in App Store Connect and automatic device management. Because the Apple ID is a personal login, it's only possible to add it to an app and not an organization. 37 | 38 | ## Two factor authentication 39 | 40 | App Center supports Apple IDs with two-factor authentication protection enabled. App Center only supports six-digit codes generated from a trusted device. 41 | 42 | Any of your trusted Apple devices can generate a six-digit code by clicking "Allow." Once you have a code, fill out the dialogue and App Center uses the same session next time it's needed. A six-digit code must be renewed every 30 days. You can renew a code with a click on **Reconnect account** from the UI. The UI will be prompted for a new six-digit code. 43 | 44 | [App Store Connect](https://appstoreconnect.apple.com/login) requires both the six-digit code and an [app-specific password](https://support.apple.com/HT204397) to log in with two-factor authentication. You can read how to [add a app-specific password at the App Store docs page](~/distribution/stores/apple.md#adding-two-factor-authentication). 45 | -------------------------------------------------------------------------------- /docs/dashboard/webhooks/media/createANewWebhook.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/webhooks/media/createANewWebhook.gif -------------------------------------------------------------------------------- /docs/dashboard/webhooks/media/createNewWebhook.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/webhooks/media/createNewWebhook.gif -------------------------------------------------------------------------------- /docs/dashboard/webhooks/media/editWebhook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/dashboard/webhooks/media/editWebhook.png -------------------------------------------------------------------------------- /docs/diagnostics/enabling-diagnostics.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Enabling Diagnostics in an App 3 | description: Learn how to add support for App Center Diagnostics to an app 4 | keywords: crashes, diagnostics, errors, SDK 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 07/22/2019 8 | ms.topic: article 9 | ms.assetid: 518975d1-077c-4f7d-bf35-6ceba05347ca 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Enabling Diagnostics in an App 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | ## Diagnostics SDK 19 | 20 | To enable App Center’s diagnostics for your app, make sure you have the App Center SDK integrated for your app. Learn more about App Center’s SDKs and how to add it to your app projects in the [SDK documentation](~/sdk/index.md). 21 | 22 | App Center Diagnostics automatically generates a crash log every time your app crashes on a real device or in a device simulator. Learn how to generate a test crash, get more information about a previous crash, and customize your usage of App Center diagnostics for your [Android](~/sdk/crashes/android.md), [iOS](~/sdk/crashes/ios.md), [macOS](~/sdk/crashes/macos.md), [React Native](~/sdk/crashes/react-native.md), [Unity](~/sdk/crashes/unity.md), [UWP](~/sdk/crashes/uwp.md), [WPF/WinForms](~/sdk/crashes/wpf-winforms.md), and [MAUI/Xamarin](~/sdk/crashes/xamarin.md) apps. 23 | 24 | ## Next steps 25 | 26 | - [Learn more about App Center Diagnostics features](~/diagnostics/features.md) 27 | - [Learn how to navigate App Center Diagnostics UI](~/diagnostics/using-the-diagnostics-UI.md) 28 | - [Learn how to use App Center Diagnostics APIs](~/diagnostics/using-the-diagnostics-API.md) 29 | -------------------------------------------------------------------------------- /docs/diagnostics/images/UWP-Analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/UWP-Analytics.png -------------------------------------------------------------------------------- /docs/diagnostics/images/UWP-Crash-Groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/UWP-Crash-Groups.png -------------------------------------------------------------------------------- /docs/diagnostics/images/UWP-Crash-Instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/UWP-Crash-Instance.png -------------------------------------------------------------------------------- /docs/diagnostics/images/annotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/annotate.png -------------------------------------------------------------------------------- /docs/diagnostics/images/attachments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/attachments.png -------------------------------------------------------------------------------- /docs/diagnostics/images/crash-analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/crash-analytics.png -------------------------------------------------------------------------------- /docs/diagnostics/images/crash-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/crash-groups.png -------------------------------------------------------------------------------- /docs/diagnostics/images/crashes-query-types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/crashes-query-types.png -------------------------------------------------------------------------------- /docs/diagnostics/images/crashes-results-freetext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/crashes-results-freetext.png -------------------------------------------------------------------------------- /docs/diagnostics/images/diagnostics-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/diagnostics-overview.png -------------------------------------------------------------------------------- /docs/diagnostics/images/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/download.png -------------------------------------------------------------------------------- /docs/diagnostics/images/email-notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/email-notifications.png -------------------------------------------------------------------------------- /docs/diagnostics/images/events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/events.png -------------------------------------------------------------------------------- /docs/diagnostics/images/groupsoverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/groupsoverview.png -------------------------------------------------------------------------------- /docs/diagnostics/images/new-annotate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/new-annotate.png -------------------------------------------------------------------------------- /docs/diagnostics/images/new-attachments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/new-attachments.png -------------------------------------------------------------------------------- /docs/diagnostics/images/new-crash-analytics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/new-crash-analytics.png -------------------------------------------------------------------------------- /docs/diagnostics/images/new-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/new-download.png -------------------------------------------------------------------------------- /docs/diagnostics/images/new-events.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/new-events.png -------------------------------------------------------------------------------- /docs/diagnostics/images/new-threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/new-threads.png -------------------------------------------------------------------------------- /docs/diagnostics/images/notifications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/notifications.png -------------------------------------------------------------------------------- /docs/diagnostics/images/search-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/search-overview.png -------------------------------------------------------------------------------- /docs/diagnostics/images/search-type-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/search-type-selection.png -------------------------------------------------------------------------------- /docs/diagnostics/images/symbols-UUID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/symbols-UUID.png -------------------------------------------------------------------------------- /docs/diagnostics/images/threads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/threads.png -------------------------------------------------------------------------------- /docs/diagnostics/images/track-status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/track-status.png -------------------------------------------------------------------------------- /docs/diagnostics/images/upload-symbols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/diagnostics/images/upload-symbols.png -------------------------------------------------------------------------------- /docs/diagnostics/includes/generate-breakpad-symbols-payload.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Generating a Breakpad Symbols Upload Payload 3 | author: lucen-ms 4 | ms.author: lucen 5 | ms.topic: include 6 | --- 7 | 8 | ## Generate a .zip file to upload 9 | 10 | There are two ways for App Center to retrieve the symbols necessary for symbolication. App Center can generate them from the native binaries used in your project, or you can upload the Breakpad symbols directly. 11 | 12 | ### Option 1: Upload native binaries 13 | Put all .so files from the project's `obj/local/$ABI/` directory into a .zip file. 14 | 15 | ### Option 2: Upload Breakpad symbols 16 | 1. Dump the symbols using the Breakpad toolchain as described in the [Breakpad documentation](https://chromium.googlesource.com/breakpad/breakpad/+/master/README.ANDROID#93) under section "Get the debugging symbols". 17 | 2. Create a **symbols.zip** file with the following structure: 18 | > [!NOTE] 19 | > If you're uploading your symbols from macOS, then you must clean your symbols of any extraneous folders, e.g. __MACOS gets generated and to delete this you can use `zip -d __MACOSX/\*`. 20 | 21 | ```text 22 | $ unzip -l symbols.zip 23 | Archive: symbols.zip 24 | Length Date Time Name 25 | -------- ---- ---- ---- 26 | 0 07-22-13 15:07 symbols/ 27 | 0 07-22-13 15:07 symbols/libnative.so/ 28 | 0 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/ 29 | 12468 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym 30 | 0 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/ 31 | 12467 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym 32 | -------- ------- 33 | 24935 6 files 34 | ``` -------------------------------------------------------------------------------- /docs/diagnostics/includes/ignoring-symbols.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Ignoring symbols 3 | author: lucen-ms 4 | ms.author: lucen 5 | ms.topic: include 6 | --- 7 | 8 | ## Ignoring symbols 9 | 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. 10 | 11 | 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. -------------------------------------------------------------------------------- /docs/diagnostics/includes/symbol-upload-api.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Uploading symbols through the API 3 | author: lucen-ms 4 | ms.author: lucen 5 | ms.topic: include 6 | --- 7 | 8 | 1. Trigger a `POST` request to the [symbol_uploads API](https://openapi.appcenter.ms/#/crash/symbolUploads_create). 9 | This call allocates space on our backend for your file and returns a `symbol_upload_id` and an `upload_url` property. 10 | 11 | ```shell 12 | curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \ 13 | -H 'accept: application/json' \ 14 | -H 'X-API-Token: {API TOKEN}' \ 15 | -H 'Content-Type: application/json' \ 16 | -d '{JSON BODY}' 17 | ``` 18 | 19 | 2. Using the `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 ](/rest/api/storageservices/put-blob#request-headers-all-blob-types). 20 | 21 | ```shell 22 | curl -X PUT '{upload_url}' \ 23 | -H 'x-ms-blob-type: BlockBlob' \ 24 | --upload-file '{path to file}' 25 | ``` 26 | 27 | 3. Make a `PATCH` request to the [symbol_uploads API](https://openapi.appcenter.ms/#/crash/symbolUploads_complete) 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). 28 | 29 | ```shell 30 | curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \ 31 | -H 'accept: application/json' \ 32 | -H 'X-API-Token: {API TOKEN}' \ 33 | -H 'Content-Type: application/json' \ 34 | -d '{ "status": "committed" }' 35 | ``` 36 | 37 | > [!NOTE] 38 | > 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](https://github.com/microsoft/appcenter-cli). 39 | -------------------------------------------------------------------------------- /docs/diagnostics/includes/symbol-upload-cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Uploading symbols through the CLI 3 | author: lucen-ms 4 | ms.author: lucen 5 | ms.topic: include 6 | --- 7 | 8 | You can also use the [App Center CLI](~/cli/index.md) to upload symbol files: 9 | 10 | ```shell 11 | appcenter crashes upload-symbols --breakpad {symbols file} 12 | ``` -------------------------------------------------------------------------------- /docs/diagnostics/includes/symbol-upload-ui.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Uploading symbols through the UI 3 | author: lucen-ms 4 | ms.author: lucen 5 | ms.topic: include 6 | --- 7 | 8 | 1. Log into App Center and select your app. 9 | 1. In the left menu, navigate to the **Diagnostics** section and select **Symbols**. 10 | 1. In the top-right corner, click **Upload symbols** and upload the file. 11 | 1. After the symbols are indexed by App Center, crashes will be symbolicated for you. 12 | -------------------------------------------------------------------------------- /docs/diagnostics/includes/unsymbolicated-crashes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Unsymbolicaed crashes 3 | description: Help understanding behavior for unsymbolicated crashes in App Center 4 | author: lucen-ms 5 | ms.author: lucen 6 | ms.date: 12/16/2019 7 | ms.topic: article 8 | ms.assetid: 984345b3-5a2b-4d01-bdad-d696ee17d721 9 | ms.service: vs-appcenter 10 | ms.custom: analytics 11 | --- 12 | 13 | 14 | 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. 15 | -------------------------------------------------------------------------------- /docs/diagnostics/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Diagnostics 3 | description: Help using the Diagnostic service on App Center 4 | keywords: app center, crashes, errors, diagnostics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 12/16/2019 8 | ms.topic: article 9 | ms.assetid: f3cc2bc9-29a5-4b39-84fa-a82d6902ea6f 10 | ms.service: vs-appcenter 11 | ms.custom: diagnostics 12 | --- 13 | 14 | # Diagnostics 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | ## Overview 19 | 20 | App Center Diagnostics is a cloud service that helps developers monitor the health of an application, delivering the data needed to understand what happens when an app fails during testing or in the wild. The App Center Diagnostics SDK collects information about crashes and errors in your apps and uploads them to the App Center portal for analysis by the development team - eliminating the guesswork about what really happened in the app when it failed. 21 | 22 | > [!NOTE] 23 | > App Center Diagnostics does not provide real-time crash processing, as there can be delays in the SDK sending the data. 24 | 25 | ## Crashes 26 | 27 | Crashes are what happens when a runtime exception occurs from an unexpected event that terminates the app. These are errors not handled by a try/catch block. When a crash occurs, App Center Crashes records the state of the app and device and automatically generates a crash log. These logs contain valuable information to help you fix the crash. 28 | 29 | ## Errors 30 | 31 | Experienced developers know where code can fail and wrap potentially risky code with error checking or try/catch blocks to handle problems as they occur. For [Android](../sdk/crashes/android.md), [MAUI/Xamarin](../sdk/crashes/xamarin.md), [Unity](../sdk/crashes/unity.md), [UWP](../sdk/crashes/uwp.md), [WPF and WinForms](../sdk/crashes/wpf-winforms.md) apps, App Center Errors allow you to handle the errors in your app and avoid potential issues in your app. Learn more about best practices about when and how to use errors in the [official documentation for exceptions](/dotnet/csharp/programming-guide/exceptions/using-exceptions). 32 | 33 | > [!NOTE] 34 | > App Center Errors is only supported for Android, Xamarin, Unity, UWP, WPF and WinForms apps. 35 | 36 | ### Limits 37 | 38 | - The maximum number of error properties per error is 20. When more than 20 properties are sent, the first 20 properties are processed, and the rest are automatically dropped by the SDK. 39 | - The SDK truncates each property key and value to the first 125 characters. 40 | -------------------------------------------------------------------------------- /docs/diagnostics/limitations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Limitations 3 | description: Limitations with the Diagnostic Service in App Center 4 | keywords: diagnostic, crashes 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 12/19/2019 8 | ms.topic: article 9 | ms.assetid: e720dade-8d0c-44c6-8746-8b6a61da0f6f 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Limitations 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | ## Crashes 19 | 20 | - Android React Native source maps aren't supported. 21 | - App Center only accepts up to 60 crashes per minute per unique app. We won't ingest or process any crashes that exceed this limit. 22 | - App Center only stores uploaded symbols for 180 days 23 | 24 | 25 | ## Handled Errors 26 | 27 | - Errors are available for iOS, Android, Xamarin, Unity, UWP, WPF and WinForms platforms. 28 | - Attachments are available for iOS, Android, Xamarin, Unity, UWP, WPF and WinForms platforms. 29 | - You can define a maximum of 20 properties per error, anything beyond that limit will be rejected. 30 | - The maximum number of characters per error property key and error property value is 125 characters. 31 | - App Center only accepts up to 60 handled errors per minute per unique app. We won't ingest or process any errors that exceed this limit. 32 | 33 | 34 | -------------------------------------------------------------------------------- /docs/diagnostics/search.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Search in Diagnostics 3 | description: A description of the search functionality in Diagnostics 4 | keywords: crashes, errors, search 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/09/2019 8 | ms.topic: article 9 | ms.assetid: 92ABCD39-D03A-4560-BE32-31C44DE1EAC6 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Search in Diagnostics 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | In this section, you'll learn about the ability to search Diagnostics data in App Center. 19 | 20 | ## How to use Search 21 | 22 | App Center Diagnostics allows you to search for specific crashes and handled errors. In the Diagnostics overview, click on the magnifying glass to start using Search. 23 | 24 | ![App Center Diagnostics search](~/diagnostics/images/search-overview.png) 25 | 26 | ### Search types 27 | 28 | App Center searches in the indexed fields, and can be done in two ways: 29 | 30 | 1. Use the search box to include free text. This text will be searched in just the indexed fields. 31 | 32 | ![Free text search](~/diagnostics/images/crashes-results-freetext.png) 33 | 34 | 2. Use the query builder to specify what fields you want to search on by clicking on the filtering icon. 35 | 36 | ![Query builder](~/diagnostics/images/crashes-query-types.png) 37 | 38 | 3. If your Android, Unity, UWP, WPF, WinForms, or Xamarin app is tracking handled errors, you can specify the type of issue you want to search next to the search box. 39 | 40 | ![Search type selection](~/diagnostics/images/search-type-selection.png) 41 | 42 | ### Indexed fields 43 | 44 | For crash and error reports: 45 | 46 | - User ID 47 | - Method 48 | - Class 49 | - Exception Type 50 | - Reason 51 | - Model 52 | - OS Version 53 | - Crash and error ID 54 | 55 | For crash and error groups: 56 | 57 | - Method 58 | - Class 59 | - Exception Type 60 | - Reason 61 | - Crash and error group ID 62 | 63 | ## Considerations 64 | 65 | - Only symbolicated crashes are searchable; you must upload the symbols to search for them. 66 | - The maximum number of matching reports we display is 100. 67 | - Search results show the last 28 days of data, whatever the retention settings. 68 | - The report or group ID is only searchable via the search box, not the query builder. The group ID is the 10 digit string after `crashes/errors` in the URL of the crash or error group. The crash and error report ID is the last 32 character string in the URL of the specific crash or error report. For example, your URL might look something like: `appcenter.ms/orgs/appcenter/apps/test-app/crashes/errors/3132303808u/reports/2518291138564839999-00000000-0000-0000-0000-000000000000/threads`. The group ID is `3132303808` and crash ID is `00000000-0000-0000-0000-000000000000`. 69 | -------------------------------------------------------------------------------- /docs/diagnostics/unmanaged-code-crash-support.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Unmanaged Code Crash Support 3 | description: Learn how to symbolicate your App's unmanaged code crashes 4 | keywords: unmanaged, crashes, upload, symbolication 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 07/11/2020 8 | ms.topic: article 9 | ms.assetid: 6cab50d0-b40a-4b19-9f8f-10aea4243b57 10 | ms.service: vs-appcenter 11 | ms.custom: diagnostics 12 | --- 13 | 14 | # Symbolicating Unmanaged Code Crashes 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | App Center Diagnostics supports symbolicating unmanaged C/C++ code crashes in your application. 19 | You can symbolicate unmanaged code crashes that originate in your [Android NDK code](~/diagnostics/Android-NDK.md), and unmanaged code crashes formatted as [Breakpad minidumps](~/diagnostics/unmanaged-code-crash-support.md#using-breakpad-with-app-center) uploaded through the [Upload Crashes API](~/diagnostics/upload-crashes.md#upload-a-crash-report). 20 | 21 | ## Using Breakpad with App Center 22 | 23 | [Breakpad](https://github.com/google/breakpad/blob/master/docs/getting_started_with_breakpad.md) is a library and tool suite that helps produce C and C++ stack traces. These stack traces are generated from [`minidump` files](https://github.com/google/breakpad/blob/master/docs/getting_started_with_breakpad.md#the-minidump-file-format) produced once Breakpad is integrated with your project. 24 | Breakpad offers starter guides for integrating with [Linux](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/linux_starter_guide.md), [Windows](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/windows_client_integration.md), and [Mac](https://chromium.googlesource.com/breakpad/breakpad/+/master/docs/mac_breakpad_starter_guide.md) applications. 25 | 26 | ## Sending Breakpad Crash Logs to App Center 27 | 28 | ### Android NDK 29 | App Center offers an [SDK integration](~/diagnostics/Android-NDK.md) for Android applications using the NDK to run unmanaged code. 30 | This integration will create Breakpad minidumps and automatically upload them to App Center for you. 31 | 32 | ### Other Applications 33 | Once Breakpad is integrated with your application, you can [Upload Breakpad crash logs and minidumps](~/diagnostics/upload-crashes.md#upload-a-breakpad-crash-log-and-minidump) to App Center. 34 | 35 | ## Symbolicating Unmanaged Crashes 36 | 37 | ### Generating Breakpad Symbols Payload 38 | App Center Diagnostics requires symbols to generate a readable stack trace from a Breakpad minidump. 39 | The uploaded symbols archive must either contain `.sym` files, which are produced using the Breakpad `dump_syms` tool, or `.so` binary files. 40 | 41 | [!INCLUDE [generate breakpad symbols payload](includes/generate-breakpad-symbols-payload.md)] 42 | 43 | ### Uploading Symbols to App Center 44 | Symbols can be uploaded through the App Center Portal, API, or CLI. 45 | 46 | [!INCLUDE [symbol upload ui](includes/symbol-upload-ui.md)] 47 | 48 | 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 `Breakpad`. 49 | 50 | [!INCLUDE [symbol upload api](includes/symbol-upload-api.md)] 51 | 52 | [!INCLUDE [ignoring symbols](includes/ignoring-symbols.md)] 53 | -------------------------------------------------------------------------------- /docs/diagnostics/upload-crashes-ui.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Upload crashes via UI 3 | description: Upload a crash report without using our SDK, or if developing for a custom platform. 4 | keywords: crashes, diagnostics, errors, upload 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/25/2020 8 | ms.topic: article 9 | ms.assetid: 7f5135ee-c133-4f1f-9376-978af1e3405d 10 | ms.service: vs-appcenter 11 | ms.custom: diagnostics 12 | --- 13 | 14 | # Upload crashes via UI 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | If you have a native crash report from an Apple device, you can upload it via the App Center portal. The following sections will explain how to retrieve crash reports from a device and upload it to App Center. 19 | 20 | ## Retrieve crash reports from Apple devices 21 | To retrieve crash reports from an Apple device, follow the instructions in [Apple's developer documentation](https://developer.apple.com/documentation/xcode/diagnosing_issues_using_crash_reports_and_device_logs/acquiring_crash_reports_and_diagnostic_logs). 22 | 23 | ## Manually upload crash reports via Diagnostics UI 24 | To manually upload Apple crash reports, follow the instructions below: 25 | 26 | 1. Log into App Center and select your app. 27 | 2. In the left menu, navigate to the **Diagnostics** section. 28 | 3. On the right top corner of page, click the three dots in the upper-right corner. 29 | 4. Select **Upload Crash Log**. 30 | 5. In the Crash Upload Dialog, follow the wizard to upload your crash report. 31 | 6. Once your report is successfully uploaded, you'll see a confirmation message. 32 | 33 | Allow some time for the report to be processed for symbolication. The crash report will appear in the Diagnostics UI after it's processed. 34 | 35 | > [!NOTE] 36 | > Manually uploading crash reports are designed for the native iOS and macOS report formats. Content in other formats, including the text/JSON report tab of App Center crashes, can lead to unpredictable results and isn't supported. 37 | 38 | ## How are native crashes different from text reports or from the "raw" tab of the App Center report? 39 | Whenever a crash occurs on iOS or macOS, a crash report is generated which can be downloaded from the device and uploaded to App Center via the manual crash upload dialog. 40 | 41 | For iOS/macOS reports, the `raw` tab contains text, like the crash report, but the formats aren't identical. The `raw` tab is an App Center-specific representation which differs from system-generated reports. For example, the ordering of `version` and `build version number` isn't the same. 42 | -------------------------------------------------------------------------------- /docs/diagnostics/using-the-diagnostics-UI.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Using the Diagnostics UI 3 | description: help using the Diagnostics UI in App Center 4 | keywords: crashes, errors, annotate, status, download 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 12/16/2019 8 | ms.topic: article 9 | ms.assetid: 5c420816-0fe9-4da1-bfaf-bc2a1fb6739b 10 | ms.service: vs-appcenter 11 | ms.custom: analytics 12 | --- 13 | 14 | # Using the Diagnostics UI 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | ## General 19 | 20 | App Center’s Diagnostics service is designed for you to easily monitor your apps' health and get the information you need to fix issues. 21 | 22 | 1. Login to the App Center Portal 23 | 2. Select an application 24 | 3. In the navigation area on the left, select **Diagnostics** 25 | 26 | App Center displays the crashes and errors in one view under the **Issues** tab. You can filter these issues by crashes or errors by clicking the respective tabs. 27 | 28 | For all apps, you can filter the diagnostics data by app version, build number, time range and status. Click on a group to find more information including a list of specific reports, devices and OS versions affected. 29 | 30 | ![Diagnostics overview page](~/diagnostics/images/diagnostics-overview.png) 31 | 32 | > [!NOTE] 33 | > When filtering crashes or errors in groups list, the total count and affected user count values will always reflect the total number of crashes for the respective group. They aren't affected by Time filters. 34 | 35 | ### Annotate a group 36 | 37 | Annotate your groups in App Center diagnostics to keep track of notes and other important information. To leave an annotation: 38 | 39 | 1. Select the Diagnostics service 40 | 2. Select a crash or an error group 41 | 3. In the upper right-hand corner, click the **annotate** button 42 | 4. Leave a text in the text box and your note will be automatically saved 43 | 44 | ![Annotate a crash group](~/diagnostics/images/new-annotate.png) 45 | 46 | ### Track the status of your groups 47 | 48 | Mark each of your groups as open, closed, or ignored. To mark the status of your groups: 49 | 50 | 1. Select a group or select multiple groups 51 | 2. Click on the **Mark as** button 52 | 3. Select the state (open, closed, ignored) 53 | 54 | Any new crash or error instance which is part of a closed or ignored group won't reopen or unignore the corresponding group. 55 | 56 | ![Track the status of your crash and error groups](~/diagnostics/images/track-status.png) 57 | 58 | Use the **Filter** option in the upper-right corner of the page to filter crashes/errors by open, closed, and ignored, focusing your view on the data that matters. 59 | 60 | ### Download Diagnostics Data 61 | 62 | You can download your diagnostics data to access raw data for further analysis. To download your diagnostics data: 63 | 64 | 1. Navigate to the Diagnostics section 65 | 2. Select **Crashes** or **Errors** 66 | 3. Select on a specific group 67 | 4. Select a specific report 68 | 5. In the upper right-hand corner, click on the **Download** button and select a format (JSON or Text) 69 | 70 | ![Download diagnostics data](~/diagnostics/images/new-download.png) 71 | -------------------------------------------------------------------------------- /docs/distribution/faq.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Distribution FAQ 3 | description: Frequently asked questions about Distribution service 4 | author: lucen-ms 5 | ms.author: lucen 6 | ms.date: 10/18/2019 7 | ms.topic: article 8 | ms.assetid: 28011d49-082d-41e4-b3bb-2d51dbeb1192 9 | ms.service: vs-appcenter 10 | --- 11 | 12 | # Distribution FAQ 13 | 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 15 | 16 | This document contains a list of frequently asked questions for Distribution in App Center. If you have questions that aren't answered here, [contact support](~/general/support-center.md). 17 | 18 | ## Frequently asked questions 19 | ### Can I distribute using an App Store Provisioning Profile? 20 | No, it's not possible to distribute apps using the App Store Provisioning profile outside of the store. You can use an Ad Hoc profile or an Enterprise profile. You can learn more by reading our [Device Registration and App Re-signing guide](~/distribution/auto-provisioning.md). 21 | 22 | ### How do I add an iOS device for testing? 23 | 1. Invite a tester to a distribution group using their email address. If you don't have an existing distribution group, you'll need to create one. The tester will be notified that they've been invited to test your app. 24 | 2. Distribute a new release to the group. 25 | 3. The tester will be notified that a new release is available. The user will try to install and can't download. 26 | 4. Navigate to **Distribute** > **Groups** > **Select the Group** > **Devices**. 27 | 5. Find the user in the list and choose three bullet points on the right to find "Copy UDID". 28 | 6. Then follow the process of adding the UDID to your provisioning profile. For more information, read our [Device Registration and App Re-signing guide](~/distribution/auto-provisioning.md). 29 | 30 | ### How to inspect the iOS console log 31 | If you're the developer of the app and can reproduce the problem on your device, follow these steps: 32 | 33 | 1. Connect your iPhone, iPad, or iPod touch to your Mac. 34 | 2. Open Xcode, then go to **Window** > **Devices**. 35 | 3. Select your device in the left sidebar. 36 | 4. Open the device log by clicking on the little triangle at the bottom of the window. 37 | ![FAQ: how to inspect iOS console log](~/distribution/images/inspect_ios_console_log.png) 38 | 5. Start the installation of your app. 39 | 40 | During the installation, you might see warnings or errors. If you need help with those messages, save the log as a .txt file and send it to [support](~/general/support-center.md). 41 | 42 | -------------------------------------------------------------------------------- /docs/distribution/images/auto-provisioning-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/auto-provisioning-flow.png -------------------------------------------------------------------------------- /docs/distribution/images/create-service-account.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/create-service-account.jpg -------------------------------------------------------------------------------- /docs/distribution/images/distribution_edit-settings-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/distribution_edit-settings-icon.png -------------------------------------------------------------------------------- /docs/distribution/images/distribution_group-id.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/distribution_group-id.png -------------------------------------------------------------------------------- /docs/distribution/images/distribution_new-api-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/distribution_new-api-token.png -------------------------------------------------------------------------------- /docs/distribution/images/distribution_new-release-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/distribution_new-release-button.png -------------------------------------------------------------------------------- /docs/distribution/images/distribution_successful-release.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/distribution_successful-release.png -------------------------------------------------------------------------------- /docs/distribution/images/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image1.png -------------------------------------------------------------------------------- /docs/distribution/images/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image10.png -------------------------------------------------------------------------------- /docs/distribution/images/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image11.png -------------------------------------------------------------------------------- /docs/distribution/images/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image2.png -------------------------------------------------------------------------------- /docs/distribution/images/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image3.png -------------------------------------------------------------------------------- /docs/distribution/images/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image4.png -------------------------------------------------------------------------------- /docs/distribution/images/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image5.png -------------------------------------------------------------------------------- /docs/distribution/images/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image6.png -------------------------------------------------------------------------------- /docs/distribution/images/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image7.png -------------------------------------------------------------------------------- /docs/distribution/images/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image8.png -------------------------------------------------------------------------------- /docs/distribution/images/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/image9.png -------------------------------------------------------------------------------- /docs/distribution/images/inspect_ios_console_log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/inspect_ios_console_log.png -------------------------------------------------------------------------------- /docs/distribution/images/installButton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/installButton.png -------------------------------------------------------------------------------- /docs/distribution/images/publicDeepLink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/publicDeepLink.png -------------------------------------------------------------------------------- /docs/distribution/images/release-externally-hosted-build.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/release-externally-hosted-build.png -------------------------------------------------------------------------------- /docs/distribution/images/releaseDestination.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/releaseDestination.jpg -------------------------------------------------------------------------------- /docs/distribution/images/vsts-deploy-app-center-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/vsts-deploy-app-center-api.png -------------------------------------------------------------------------------- /docs/distribution/images/vsts-deploy-app-center-binary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/vsts-deploy-app-center-binary.png -------------------------------------------------------------------------------- /docs/distribution/images/vsts-deploy-app-center-notes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/vsts-deploy-app-center-notes.png -------------------------------------------------------------------------------- /docs/distribution/images/vsts-deploy-app-center-slug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/images/vsts-deploy-app-center-slug.png -------------------------------------------------------------------------------- /docs/distribution/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Distribute Your Apps with App Center 3 | description: "How to distribute your Android, iOS, macOS, and UWP app builds to your end users in App Center." 4 | keywords: distribution 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 08/01/2019 8 | ms.topic: article 9 | ms.assetid: dda0e037-9f42-4e63-8ef8-e645d3e8fbda 10 | ms.service: vs-appcenter 11 | ms.custom: distribute 12 | --- 13 | 14 | # Distribute 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | App Center Distribute is a tool for developers to quickly release builds to end user devices. Distribute supports Android, iOS, macOS, UWP, WPF and WinForms apps, allowing you to manage app distribution across multiple platforms all in one place. With a complete [install portal experience](~/distribution/testers/index.md), Distribute isn't only a powerful solution for beta app tester distribution but also a convenient alternative to distribution through the public app stores. Automate your distribution workflow even further with our [public app store integrations](~/distribution/stores/index.md). Upon the completion of a successful build, automatically submit your app release to TestFlight, Apple App Store, Google Play, and Intune. 19 | 20 | ## Getting Started 21 | 22 | Distributing with App Center is quick and easy, and doesn't require the App Center SDK to get started. 23 | 24 | 1. [Add collaborators to your app](~/dashboard/creating-and-managing-apps.md) to collaborate and grant access to all releases. 25 | 2. [Create Distribution Groups](~/distribution/groups.md) to organize your testers and manage access. 26 | 3. [Upload](~/distribution/uploading.md) a new application build and select the users and distribution groups for the release. 27 | - After you've distributed a new release, App Center sends an email to the chosen users notifying them that a new build is available for them to download. 28 | - Integrate the App Center SDK and enable [In-App Updates](~/distribution/inappupdates.md) to help your users stay always on the latest release. 29 | 4. [Install the release](~/distribution/installation.md) onto your device by clicking on the link in the email. 30 | 31 | If you're distributing an iOS build, learn more about how we assist with the [collection of device UDIDs](~/distribution/auto-provisioning.md) for device provisioning or enable you to [automate the whole process with auto-provisioning](~/distribution/auto-provisioning.md). 32 | -------------------------------------------------------------------------------- /docs/distribution/installation.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Install a Build from App Center 3 | description: Instructions on how to install a build 4 | keywords: distribution 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 02/06/2020 8 | ms.topic: article 9 | ms.assetid: 89a78fd8-ee2d-4f2d-9026-756047866351 10 | ms.service: vs-appcenter 11 | ms.custom: distribute 12 | --- 13 | 14 | # Install a Build 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | Installing an application distributed by App Center begins with an email. If you have access to the application, you'll receive a notification email for each new version available. Click on the install link in the email to begin the process. You'll need to enter your credentials to log in. If it's your first time accessing App Center, you can [create a new account][signup]. Once logged in, you can review the app information, release notes, and click the `install` button to install it on your device. 19 | 20 | > [!NOTE] 21 | > If you or your testers have email notifications disabled or use the option 'Do not notify testers' when distributing a release, then you won't receive the email mentioned above. In that case, you can download releases in [the install portal](https://install.appcenter.ms/). For more information on installation for testers check out the guide [here](/appcenter/distribution/testers/). 22 | 23 | ## Windows and Certificates Requirements 24 | Installing a windows package requires a trusted root certificate installed in the root certificate chain for the device you're installing to. The most common solution is for the developer to sign an app package with a 3rd-party trusted root certificate. This certificate will chain through the third-party to the Microsoft root store, and so will be a trusted cert for all user devices. Developers can use a self-created test certificate and sign the application package, however the app will require additional steps to install. 25 | 26 | #### Installing a build signed with a developer test certificate 27 | You can install a test signed app by first installing the test certificate (which is automatically included in the app package) by following these steps. 28 | 29 | 1. Right-click on the `.appxbundle` package you downloaded via App Center and select **properties**. 30 | 2. Under the **Digital Signatures** tab, you should see the test certificate. Click to select the certificate and then click the **Details** button. 31 | 3. Select the button **View Certificate**. 32 | 4. Select the button **Install Certificate**. 33 | 5. From the **Store Location** radio buttons, select **Local Machine**. Click the **Next** button. 34 | 6. Click **Yes** on the admin prompt for changes to your device. 35 | 7. On the **Certificate Import Wizard**, choose the radio button **Place all certificates in the following store**, then select the **Browse** button. 36 | 8. Select the **Trusted People** certificate store. Then click the **OK** button. 37 | 9. Click the **Next** button on the **Certificate Import Wizard** window. 38 | 10. Click **Finish** button to complete the certificate install. 39 | 11. You can now close all windows and double-click on the `.appxbundle` file. It should now install properly. 40 | 41 | [login]: ~/dashboard/creating-and-managing-apps.md 42 | [signup]: ~/dashboard/creating-and-managing-apps.md 43 | -------------------------------------------------------------------------------- /docs/distribution/sparkleupdates.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Enable Sparkle updates 3 | description: Easily stay up-to-date on the latest build with Sparkle update notifications. 4 | keywords: distribution 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 04/02/2020 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.custom: distribute 11 | ms.assetid: b5c07e60-985b-4941-a139-a203ea912d5a 12 | --- 13 | 14 | # Sparkle Updates 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | Sparkle is a software update framework for [macOS](http://sparkle-project.org) and Windows ([WinSparkle](https://winsparkle.org), [NetSparkleUpdater](https://github.com/NetSparkleUpdater/NetSparkle)) apps. 19 | 20 | ## Setup for distribution 21 | 22 | Install the Sparkle SDK in your app and configure the App Center Sparkle feed. To access the Sparkle feed of an app in App Center, navigate to your app settings, click on the three dots menu, and copy the app secret. Set [SUFeedURL](https://sparkle-project.org/documentation/customization/) to `https://api.appcenter.ms/v0.1/public/sparkle/apps/{app_secret}` and replace `{app_secret}` with your app secret. Build your app and release it to a [public distribution group](~/distribution/groups.md#public-distribution-groups) in App Center. All versions that are released to a public distribution group show up in the App Center Sparkle feed. 23 | 24 | Sparkle support for sandboxes in macOS is under development (09/2019). If you require sandboxes, check out the [following fork](https://github.com/tumult/Sparkle) and [this discussion](https://github.com/andymatuschak/Sparkle/pull/165). 25 | 26 | ## Specify the DSA or EdDSA signature via API 27 | 28 | Once the app is released, you can use the [following endpoint](https://openapi.appcenter.ms/#/distribute/releases_update) to update the `dsa_signature` or `ed_signature` of your release. You can also choose to provide both signatures for backwards-compatibility. Once updated, you can verify that the feed URL includes the provided signature(s). 29 | -------------------------------------------------------------------------------- /docs/distribution/stores/apple/app_store.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Publish an iOS package to the App Store (Production) 3 | description: Learn how to release to App Store from App Center 4 | keywords: distribute, stores, fastlane, app store 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 02/10/2020 8 | ms.topic: article 9 | ms.assetid: ede8ed54-baed-4e9d-be2b-6606e41adaa2 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Publish an iOS package to the App Store (Production) 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | > [!TIP] 18 | > [Build your app according to Apple's guidelines](https://developer.apple.com/app-store/submissions/) 19 | 20 | 1. From the Stores home page, select the “Production” store created above. 21 | 2. Select **Publish to App Store** in the upper-right corner. 22 | 3. At the first step of the wizard, you must upload your .ipa file. After the file has a been successfully uploaded, you'll see details, like icon and version. Select **Next**. 23 | 4. Enter release notes. Only plain text is supported and release notes must be longer than 10 characters. Select **Next**. 24 | 5. Select **Publish**. The status for this release will show as **Submitted** on the store details page. Submitted means that the .ipa has been delivered to App Store Connect for evaluation. 25 | 6. Once App Center has completed the hand-over of the app to App Store Connect, the status of the app changes to **Published**, and the app is available to download through Apple's App Store. 26 | 7. If a failure occurs while publishing by Apple, the status on the store details page changes to **Failed** with the appropriate error message. For more information, see [Apple's app review process](https://developer.apple.com/app-store/review/). 27 | -------------------------------------------------------------------------------- /docs/distribution/stores/apple/testflight_external.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Publish an iOS package to TestFlight (External Testers) 3 | description: Learn how to release to external testers in TestFlight from App Center 4 | keywords: distribute, stores, testflight, fastlane 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 02/10/2020 8 | ms.topic: article 9 | ms.assetid: ccc31919-b918-4cf5-8c07-8ab982cf6192 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Publish an iOS package to TestFlight (External Testers) 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | 1. From the Stores home page, select the external group to distribute to. 18 | 2. Select **Publish to Store** in the upper-right corner. 19 | 3. At the first step of the wizard, you need to upload your .ipa file. After the file has been successfully uploaded, you'll see details, like icon and version. Select **Next**. 20 | 4. Enter release notes. Only plain text is supported and release notes must be longer than 10 characters. Select **Next**. 21 | 5. Select **Publish**. The status for this release on the store details page will show as **Submitted**. Submitted means that the .ipa has been delivered to App Store Connect for evaluation. 22 | 6. Once App Center has completed the hand-over of the app to App Store Connect, the status of the app changes to **Published**, and the app is available to download through Apple's TestFlight service. 23 | 7. If a failure occurs with publishing by Apple, the status will change to **Failed** with the appropriate error message. 24 | -------------------------------------------------------------------------------- /docs/distribution/stores/apple/testflight_internal.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Publish an iOS package to TestFlight (Internal Testers) 3 | description: Learn how to release to internal testers in TestFlight from App Center 4 | keywords: distribute, stores, fastlane, testflight 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 02/10/2020 8 | ms.topic: article 9 | ms.assetid: c6a908c8-6273-4e30-92c0-7c40ccf58aa9 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Publish an iOS package to TestFlight (Internal Testers) 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | > [!TIP] 18 | > [Build your app according to Apples guidelines](https://developer.apple.com/app-store/submissions/) 19 | 20 | 1. From the Stores home page, select “App Store Connect users”. We only support internal group "App Store Connect Users" 21 | 2. Click **Publish to TestFlight** in the upper-right corner. 22 | 3. At the first step of the wizard, you must upload you .ipa file. After the file has been successfully uploaded, you'll see details, like icon and version. Click **Next**. 23 | 4. Enter release notes. Only plain text is supported and release notes must be longer than 10 characters. Select **Next**. 24 | 5. Click **Publish**. The status for this release on the store details page will show as **Submitted**. Submitted means that the .ipa has been delivered to App Store Connect for evaluation. 25 | 6. Once App Center has completed the hand-over of the app to App Store Connect, the status of the app changes to **Published**, and the app is available to download through Apple's TestFlight service. 26 | 7. If a failure occurs with publishing by Apple, the status will change to **Failed** with the appropriate error message. 27 | -------------------------------------------------------------------------------- /docs/distribution/stores/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Publish to consumer and enterprise stores 3 | description: Distribute your apps to consumer and enterprise stores 4 | keywords: distribution store 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/26/2019 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.custom: distribute 11 | ms.assetid: 04325eb2-4730-47e9-b159-bbf7994d18f8 12 | --- 13 | 14 | # Distribute apps directly to stores from App Center 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | - [Apple App Store](apple.md) 19 | - [Google Play Store](googleplay.md) 20 | - [Microsoft Intune](intune.md) 21 | 22 | ## Support matrix 23 | 24 | | Store | iOS | Android | UWP | MacOS | 25 | | ----------------- | :-: | :-----: | :-: | :---: | 26 | | Apple App Store | ✅ | ❌ | ❌ | ❌ | 27 | | Google Play Store | ❌ | ✅ | ❌ | ❌ | 28 | | Microsoft Intune | ✅ | ✅ | ❌ | ❌ | 29 | -------------------------------------------------------------------------------- /docs/distribution/stores/insight/google/googlePlayAppDoesntExist.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Publishing to Google Play fails because the app isn't found 3 | description: Troubleshooting guide about creating an app package in Google Play Console that App Center can connect to and work with Google Play 4 | keywords: google, google play store, store, insight 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 03/18/2020 8 | ms.topic: reference 9 | ms.assetid: 43efde4a-3249-46bc-83db-2d8d29b712e4 10 | ms.service: vs-appcenter 11 | ms.custom: insight, distribution store 12 | --- 13 | 14 | # Connecting to the Google Play Store fails because the app package name couldn't be found 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | When connecting to the Google Play Store, you may come across an error like this: 19 | 20 | > The app package name could not be found in your Google Play Console account. Sign in to your Google Play Console account and make sure your app is published. 21 | 22 | This error appears when you try to connect to the Google Play Store before Google knows the package name of your app. Make sure you create the app in the Google Play Console first, and publish it to one of the built-in tracks at least once as well. Follow the steps below to fix the issue. 23 | 24 | ## Fixing this issue 25 | Make sure you have the right app package name, and that the app is published in the Google Play Console. 26 | 27 | ### Verify the app package name 28 | First verify you used the correct app package name. You can see this in the Google Play Console: 29 | 30 | * Sign in to the [Google Play Console](https://play.google.com/apps/publish/). 31 | * Make sure the app exists in the **All applications** list. 32 | * If the app isn't there, create it and go through the publishing steps below. 33 | * The app package name is written in the **App name** column under the app name itself. 34 | * If it isn't there, go through the publishing steps below. 35 | 36 | ### Publish the app 37 | If you have the correct app package name and it still doesn't work, that means the app isn't yet published in the Google Play Console. Publish it there first, to the **Production**, **Beta** or **Alpha** track. App Center doesn't support manually created tracks. 38 | 39 | * Sign in to the [Google Play Console](https://play.google.com/apps/publish/). 40 | * Make sure the app exists in the **All applications** list. Create the app if it doesn't exist. 41 | * The **Status** likely says **Draft**. Your goal is to have the status say **Published**. 42 | * Go to the settings for the app. 43 | * Go through all the steps in the console to [publish the app](https://support.google.com/googleplay/android-developer/answer/6334282?hl=en&ref_topic=7072031). 44 | -------------------------------------------------------------------------------- /docs/distribution/stores/insight/google/googlePlayAppDoesntHaveBuild.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Connecting to Google Play fails because the app isn't published yet 3 | description: How to publish to enable the connection 4 | keywords: google, google play store, store, insight 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/06/2019 8 | ms.topic: reference 9 | ms.assetid: d8eedbe1-bcf9-4748-bf63-1c985983ab48 10 | ms.service: vs-appcenter 11 | ms.custom: insight, distribution store 12 | --- 13 | 14 | # Connecting to the Google Play Store fails because the app isn't published 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | When connecting to the Google Play Store, you may come across an error like this: 19 | 20 | > You must publish your app to the Production, Beta or Alpha track from the Google Play Console before you can connect the store. 21 | 22 | This error appears when you try to connect to the Google Play Store before publishing the app. Because App Center doesn't support adding some of the metadata that's required for the first publication, you must publish your app to one of the built-in tracks at least once from the Google Play Console. Follow the steps below to fix the issue. 23 | 24 | ## Fixing this issue 25 | Publish the app to the **Production**, **Beta** or **Alpha** track through the Google Play Console. App Center doesn't support manually created tracks. 26 | 27 | * Sign in to the [Google Play Console](https://play.google.com/apps/publish/). 28 | * Select your app in the **All applications** list. The **Status** there likely says **Draft**. Your goal is to have the status say **Published**. 29 | * Go through all the steps in the console to [publish the app](https://support.google.com/googleplay/android-developer/answer/6334282?hl=en&ref_topic=7072031). 30 | * If you already published the app to a manually created track, publish it again to one of the built-in tracks. 31 | -------------------------------------------------------------------------------- /docs/distribution/stores/insight/google/googlePlayAppSigningNotEnabled.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Publishing AAB fails because app signing isn't enabled 3 | description: What to do when uploading an Android App Bundle fails because Google Play App Signing isn't enabled. 4 | keywords: google, google play store, store, insight 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/06/2019 8 | ms.topic: reference 9 | ms.assetid: 97807d59-8e0d-4581-a15a-13de6407ebe9 10 | ms.service: vs-appcenter 11 | ms.custom: insight, distribution store 12 | --- 13 | 14 | # Publishing an Android App Bundle fails because app signing isn't enabled 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | When publishing an Android App Bundle .aab file, you may come across an error like this: 19 | 20 | > Google Play app signing is not enabled for this package. You must enroll into app signing by Google Play to upload an Android App Bundle. 21 | 22 | This error appears when you try to publish an app for which you haven't enabled app signing by Google Play. This is a requirement for releasing Android App Bundles. Follow the steps below to fix the issue. 23 | 24 | ## Fixing this issue 25 | 26 | * Sign in to the [Google Play Console](https://play.google.com/apps/publish/). 27 | * Open the settings for your app. 28 | * Go to **Release management** > **App signing**. 29 | * Follow the steps there to enable app signing by Google Play for your app. 30 | 31 | See the official documentation by Google on [using app signing by Google Play](https://support.google.com/googleplay/android-developer/answer/7384423). 32 | -------------------------------------------------------------------------------- /docs/distribution/stores/insight/google/googlePlayInsufficientPermissions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: No permission to publish to Google Play 3 | description: Insight documentation about granting the correct permissions so that App Center can access the Google Play Account and perform the necessary actions to publish an app 4 | keywords: google, google play store, store, insight 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/06/2019 8 | ms.topic: reference 9 | ms.assetid: 536d7c06-ceeb-40e4-91e3-5ed90b03bbd0 10 | ms.service: vs-appcenter 11 | ms.custom: insight, distribution store 12 | --- 13 | 14 | # Connecting to the Google Play Store fails because of permissions 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | When connecting to the Google Play Store, you may come across an error like this: 19 | 20 | > Your Google service account doesn't have permissions to publish the app to the Google Play Store. 21 | 22 | This error happens when App Center doesn't have access to your Google service account. Follow the steps below to fix the issue. 23 | 24 | ## Fixing this issue 25 | 26 | * Read [how to link your App Center app with your Google service account](/appcenter/distribution/stores/googleplay#setting-up-api-access-clients "Setting up API access clients"). 27 | * Especially, make sure to [grant access to your service account](https://play.google.com/apps/publish/#ApiAccessPlace "Grant access to your service account"). 28 | -------------------------------------------------------------------------------- /docs/distribution/stores/insight/google/googlePlayPackageForbidden.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App not accessible from Google Play 3 | description: Insight documentation about how to make your app accessible for App Center 4 | keywords: google, google play store, store, insight 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/06/2019 8 | ms.topic: reference 9 | ms.assetid: c5799bd0-0792-4b7a-8088-aeedaf053964 10 | ms.service: vs-appcenter 11 | ms.custom: insight, distribution store 12 | --- 13 | 14 | # Connecting to the Google Play Store fails because the app isn't accessible 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | When connecting to the Google Play Store, you may come across an error like this: 19 | 20 | > This app exists but is not accessible from your Google Play account. Sign in to your Google Play Console and make sure your app is published. 21 | 22 | This error appears when your account doesn't have access to an app in the Google Play Console. It usually means the app is published by a different account, which you didn't give the API access to. 23 | 24 | ## Fixing this issue 25 | 26 | Provide the App Center API access to a Google account, which does have access to the app. Follow the [instructions on how to provide the correct .json file](/appcenter/distribution/stores/googleplay). 27 | -------------------------------------------------------------------------------- /docs/distribution/testers/images/I-add-device.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/I-add-device.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/a-appdetails-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/a-appdetails-app.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/a-appdetails-installportal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/a-appdetails-installportal.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/a-store-listing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/a-store-listing.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/i-app-detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/i-app-detail.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/i-configview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/i-configview.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/i-profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/i-profile.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/m-appdetail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/m-appdetail.png -------------------------------------------------------------------------------- /docs/distribution/testers/images/m-appsview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/distribution/testers/images/m-appsview.png -------------------------------------------------------------------------------- /docs/distribution/testers/testing-macos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Testing macOS Apps 3 | description: How to test macOS Apps in App Center 4 | keywords: distribution 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 11/05/2018 8 | ms.topic: article 9 | ms.assetid: a71c9c40-e15f-4826-913a-133917f66ba1 10 | ms.service: vs-appcenter 11 | ms.custom: distribute 12 | --- 13 | 14 | # Testing macOS Apps 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | After getting invited to test a macOS application in App Center you'll receive an email notifying you of your pending invitation. The following sections outline the steps you need to take to get started testing this app. 19 | 20 | ## Installing an app 21 | 22 | Installing an app on your macOS device is done primarily from the App Center install portal or our native app, which is explained in the next section. Installing your apps can be done in two different ways depending on the developer's preference: 23 | 24 | 1. You'll receive an email from App Center that directs you to the release in the App Center. You can also elect to go directly to the [App Center Install Portal](https://install.appcenter.ms) at any point to see apps you've been added to and their releases. 25 | 26 | 2. The developer sends you an installation link. By using this link, you'll be navigated directly to the app in the install portal where you can view and download a release. 27 | 28 | Once you have navigated to the install portal, you'll see a list of all available apps you have been added to as a tester. 29 | 30 | ![macOS Apps View](images/m-appsview.png) 31 | 32 | By clicking the app you can see additional information regarding the release history and install it by clicking the **blue download button**. Clicking this button will initiate the application download directly in the browser. 33 | 34 | ![macOS App Detail View](images/m-appdetail.png) 35 | 36 | Once the download is finished, you can install the app by going to your downloads folder and double-clicking the downloaded file. -------------------------------------------------------------------------------- /docs/errors/featureset.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Features of App Center Errors 3 | description: Feature set for errors in App Center 4 | keywords: app center, errors, exceptions, handled 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/02/2018 8 | ms.topic: article 9 | ms.assetid: FF9FA102-581A-445F-A875-3F90CF0B86A4 10 | ms.service: vs-appcenter 11 | ms.custom: errors 12 | --- 13 | # Errors Feature Set 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | In this page, you'll learn about the feature set available for Xamarin errors. 18 | 19 | > [!NOTE] 20 | > While the Crashes and Errors section portal experience is similar, there isn't feature parity between the two sections of App Center. 21 | 22 | 23 | ## Error Group Overview 24 | The Error group overview page provides you with the key metrics about the errors happening in your app. To easily manage all your error instances and allow you to get an understanding of what are the most common errors or the ones that affect most users, App Center creates Error Groups based on the similarity of the error instances' stack traces. 25 | 26 | ![App Center lists the error groups generated based on your errors instances](~/errors/images/groupsoverview.png) 27 | 28 | You can filter this page based on **time range**, **app version** and **status** (open, closed and ignored). The latest will help you track the status of your error groups and close them or ignore them if taken care of. 29 | 30 | ## Detailed Error Group View 31 | Drill down into error groups to get more information to help you fix the root cause of the error. 32 | 33 | This detailed view includes the following information for a group: 34 | - A representative stack trace which corresponds to the one from the first error in that group. 35 | - Statistics on the reports per day and Affected Users. 36 | - List of top devices and Operating Systems (OS) affected by your errors. 37 | - List of the most recent reports and ability to filter by device and OS. This list is a sample of all the reports received. 38 | 39 | In addition, you can change the status of the errors to open, closed, or ignored. 40 | 41 | ## Error Instances 42 | You can access to the individual instances inside an error group. For each error, the system returns the following information: 43 | - Stack Trace 44 | - Error Properties (if exist) 45 | - Device information (model, OS, country, language...). 46 | 47 | Also, you can download a .JSON file with the raw information about that error instance. 48 | 49 | ## Export 50 | You can export all your raw Errors data into Azure Blob Storage. See our [Export documentation](~/analytics/export.md). 51 | -------------------------------------------------------------------------------- /docs/errors/images/groupsoverview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/errors/images/groupsoverview.png -------------------------------------------------------------------------------- /docs/gdpr/analytics-consent.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Handling User Consent for Analytics 3 | description: How to handle user consent with Analytics 4 | keywords: GDPR, DSR, Privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/06/2019 8 | ms.topic: article 9 | ms.assetid: 26C66069-05D6-4EC2-84DD-AB86AF50EB97 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Handling User Consent for Analytics 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Ask for the User's Consent To Send Analytics logs 18 | If you want to get your user's confirmation before sending any Analytics data to App Center, the App Center SDK exposes an API that you can use before sending any Analytics data to App Center. 19 | 20 | Follow the steps below: 21 | 1. In your application code, build your own UI to ask for user consent. 22 | 23 | 2. You can display a message along with two buttons in the UI consent dialog box. An example for this message can be - "This application has integrated App Center SDK to send data. Do you wish to send the App usage data to App Center when using this application? Choose "Yes" to continue". The two buttons can be used to get consent from user's - "**Yes**" or "**No**". 24 | 25 | 3. If the user chooses '**Yes**', in your application code, you can call this App Center SDK API which enables sending of data to App Center backend. Make sure to pass the parameter as '**true**' in the API. 26 | 27 | You can read more about how to ask for the user's consent to send Analytics data per platform: 28 | 29 | - [Android](/appcenter/sdk/analytics/android#enable-or-disable-app-center-analytics-at-runtime) 30 | - [iOS](/appcenter/sdk/analytics/ios#enable-or-disable-app-center-analytics-at-runtime) 31 | 32 | - [MAUI/Xamarin](/appcenter/sdk/analytics/xamarin#enable-or-disable-app-center-analytics-at-runtime) 33 | 34 | - [React Native](/appcenter/sdk/analytics/react-native#enable-or-disable-app-center-analytics-at-runtime) 35 | 36 | - [Windows](/appcenter/sdk/analytics/windows#enable-or-disable-app-center-analytics-at-runtime) 37 | 38 | - [Unity](/appcenter/sdk/analytics/unity#enable-or-disable-app-center-analytics-at-runtime) 39 | 40 | - [macOS](/appcenter/sdk/analytics/macos#enable-or-disable-app-center-analytics-at-runtime) 41 | 42 | 4. If the user chooses '**No**', in your application code, you can call this App Center SDK API which disables sending of data to App Center backend. Make sure to pass the parameter as '**false**' in the API. 43 | 44 | 45 | You're done. Your app users should see this consent dialog box when they interact with the app. 46 | -------------------------------------------------------------------------------- /docs/gdpr/analytics-export.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Export Analytics Data 3 | description: How to export Analytics data for a user 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 07/16/2018 8 | ms.topic: article 9 | ms.assetid: D08809D5-4CF5-461C-9F43-3F75986CC376 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Export Analytics Data 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Overview 18 | With App Center, you can export all of your raw Analytics data into Azure Blob Storage using the [continuous export](~/analytics/export.md) feature. You'll export all data from the moment you set up export and backfill data for the last 28 days. 19 | 20 | ## Set up Analytics data export 21 | To export Analytics data, configure export by following the [Analytics Export guide](~/analytics/export.md). 22 | 23 | You can also use our Export API: 24 | 25 | ```NA 26 | POST https://openapi.appcenter.ms/v0.1/apps/{username}/{appname}/export_configurations 27 | ``` 28 | 29 | ## Provide a copy of this data to my users 30 | **Prerequisite:** To copy this data for your users, you need to map the App Center install IDs to individual users. 31 | 32 | To provide a specific user with their data, review the exported data and copy the logs with the relevant install ID(s) to a separate file. This new file should contain all exportable data for your end user. If you have any questions about what data you're required to return, check with appropriate legal counsel. 33 | 34 | -------------------------------------------------------------------------------- /docs/gdpr/analytics-forget-me.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Forgetting Analytics Data for Users 3 | description: How to handle a "forget me" request from one of your users 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/31/2018 8 | ms.topic: article 9 | ms.assetid: C2086120-083B-466E-AE78-7C64B9DE356E 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Forgetting Analytics Data for Users 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | Since Data Subject requests to be forgotten must be serviced within 30 days, App Center Analytics retains raw data for 28 days. In the event that you wish to stop collecting all Analytics data from a specific end-user, there are two ways to do so: 18 | 19 | **Block incoming Analytics data by install ID** 20 | 21 | **Step 1.** If you already maintain a mapping between the App Center install IDs and user account information, skip to Step 3. 22 | 23 | **Step 2.** Continuously [Export to Blob Storage](~/analytics/export.md), and search blob storage for a specific install ID following the steps explained in the [install ID](~/gdpr/install-id.md) section. 24 | 25 | **Step 3.** Block incoming Analytics data to prevent it from being processed. For each install ID found in Step 1, call the following App Center API: 26 | 27 | ```json 28 | PUT https://appcenter.ms/v0.1/apps/{owner_name}/{app_name}/devices/block_logs/{install_id} 29 | ``` 30 | 31 | Additional details are available in the [Analytics API documentation](https://openapi.appcenter.ms/#/analytics/Devices_BlockLogs). 32 | 33 | **Block incoming Analytics data by app ID** 34 | 35 | To process all data for a given app ID, call the following App Center API: 36 | 37 | ```json 38 | PUT https://appcenter.ms/v0.1/apps/{owner_name}/{app_name}/devices/block_logs 39 | ``` 40 | 41 | Additional details are available in the [Analytics API documentation](https://openapi.appcenter.ms/#/analytics/Devices_BlockLogs). 42 | -------------------------------------------------------------------------------- /docs/gdpr/data-from-your-end-users.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Data from Your Users 3 | description: App Center help on GDPR compliance 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/31/2018 8 | ms.topic: article 9 | ms.assetid: 0DA5C4FB-B64F-40F4-9077-4B7D31B746CD 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Data From Your Users 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | This section and all its sub-documents will provide information and API pointers to help you, as an app developer using App Center, accommodate your customers as data subjects. 18 | 19 | The first step will be to determine whether you collect personal information about your users. For that purpose, check the section ['does it apply to me'](~/gdpr/does-it-apply-to-me.md). That section will detail the places where you might have sent such data to your app in App Center. You're invited to verify your code and processes to check whether this is the case or not. 20 | 21 | Then if the answer to the above is yes, then you should check the documentation for the services your are using. For each service, you'll find information as to how to: 22 | 23 | - Find the installation ID of a device for which you believe you have collected personal information in App Center, if you don't have it already 24 | - Implement an opt-in/opt-out mechanism to allow you to take into account consent 25 | - Export a specific device's data ("forget me") 26 | - Delete data 27 | -------------------------------------------------------------------------------- /docs/gdpr/diagnostics-consent.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Handling User Consent for Diagnostics 3 | description: How to handle user consent with crashes and errors 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/16/2019 8 | ms.topic: article 9 | ms.assetid: 26C66069-05D6-4EC2-84DD-AB86AF59EB97 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Handling User Consent for Diagnostics 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Ask for the User's Consent To Send Diagnostics logs 18 | 19 | If you want to get your users' confirmation before sending a crash/error report to App Center, the App Center SDK exposes a callback that instructs App Center Diagnostics to await confirmation from each user before sending any crash/error data to App Center. 20 | 21 | You can read more about how to ask for the user's consent to send a crash/error log per platform: 22 | 23 | - [Android Consent](~/sdk/crashes/android.md#ask-for-the-users-consent-to-send-a-crash-log) 24 | - [iOS Consent](~/sdk/crashes/ios.md#ask-for-the-users-consent-to-send-a-crash-log) 25 | - [macOS Consent](~/sdk/crashes/macos.md#ask-for-the-users-consent-to-send-a-crash-log) 26 | - [tvOS Consent](~/sdk/crashes/tvos.md#ask-for-the-users-consent-to-send-a-crash-log) 27 | - [Unity Consent](~/sdk/crashes/unity.md#ask-for-the-users-consent-to-send-a-crash-log) 28 | - [UWP Consent](~/sdk/crashes/uwp.md#ask-for-the-users-consent-to-send-a-crash-log) 29 | - [WPF/WinForms Consent](~/sdk/crashes/wpf-winforms.md#ask-for-the-users-consent-to-send-a-crash-log) 30 | - [React Native Consent](~/sdk/crashes/react-native.md#ask-for-the-users-consent-to-send-a-crash-log) 31 | - [Xamarin Consent](~/sdk/crashes/xamarin.md#ask-for-the-users-consent-to-send-a-crash-log) 32 | -------------------------------------------------------------------------------- /docs/gdpr/errors-export.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Exporting Errors Data 3 | description: How to export Errors data for a user 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/31/2018 8 | ms.topic: article 9 | ms.assetid: 4D39AC7D-56BD-4CCD-8884-EB3C16E13E55 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Exporting Errors Data 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Overview 18 | 19 | App Center provides the ability to export all your raw data into Azure Blob Storage using our [continuous export](~/analytics/export.md) feature from the moment you set up export and backfill data for the last 28 days. 20 | 21 | ## How to set up export for Errors data 22 | 23 | To export Errors data, call the following App Center API: 24 | 25 | ``` 26 | "POST /v0.1/apps/{username}/{appname}/export_configurations". 27 | ``` 28 | 29 | Additional details are available in the [Analytics API](https://openapi.appcenter.ms/#/export/ExportConfigurations_Create). 30 | 31 | ## How to provide a copy of this data to my users 32 | 33 | **Prerequisite:** The following requires that you have a way to map the App Center install IDs and your users. 34 | 35 | To provide a specific user with their data, you must search the exported data and copy the logs with a specific install ID in a different file. That file will contain all the data that has been exported corresponding to that specific user. 36 | 37 | > [!NOTE] 38 | > We're working on code samples that will help you filter the exported data for a specific install ID. 39 | -------------------------------------------------------------------------------- /docs/gdpr/errors-forget-me.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Deleting User Errors Data 3 | description: How to manage and remove End-User errors data 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/31/2018 8 | ms.topic: article 9 | ms.assetid: A4139B4A-A015-4EE5-85E2-DDA7CC0EF510 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Deleting User Errors Data 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | Since Data Subject requests to be forgotten must be serviced within 30 days, App Center Errors retains raw data for 28 days. In the event that you wish to stop collecting all Errors data from a specific end-user, there are two ways to do so: 18 | 19 | ## Block incoming Errors data by install ID 20 | 21 | **Step 1.** If you're already keeping a mapping between the App Center install IDs to a way to identify your users, you can skip to Step 3. 22 | 23 | **Step 2.** Continuously [Export to Blob Storage](~/analytics/export.md) and search for a specific install ID following the steps explained in the [Install ID](~/gdpr/install-id.md) section. 24 | 25 | **Step 3.** Block incoming Errors data. For each install ID found in Step 1, call the following App Center API: 26 | 27 | ``` 28 | PUT https://appcenter.ms/v0.1/apps/{owner_name}/{app_name}/devices/block_logs/{install_id} 29 | ``` 30 | 31 | Additional details are available in the [Analytics API section](https://openapi.appcenter.ms/#/analytics/Devices_BlockLogs). 32 | 33 | ## Block incoming Errors data by app ID 34 | 35 | To stop processing all data for a given app ID, call the following App Center API: 36 | 37 | ``` 38 | PUT https://appcenter.ms/v0.1/apps/{owner_name}/{app_name}/devices/block_logs 39 | ``` 40 | 41 | Additional details are available in the [Analytics API](https://openapi.appcenter.ms/#/analytics/App_BlockLogs) section. 42 | -------------------------------------------------------------------------------- /docs/gdpr/how-to-stop-collecting-data.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: How to stop collecting data 3 | description: How to stop collecting data 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/31/2018 8 | ms.topic: article 9 | ms.assetid: facd442a-14ae-41a6-958e-d32617d1ab22 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # How to stop collecting data 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | This section describes how to stop collection of *all* data coming from apps configured with the App Center SDK either by application or by device. 18 | 19 | ## Stop collecting all SDK data for a specific app from the server 20 | 21 | If you want to stop using the Analytics and Diagnostics (Crashes and Errors) services in App Center and stop processing all the SDK logs being sent, but you still want to use other App Center services such as Build, Distribution, or Test, you can use the [Analytics block logs API](https://openapi.appcenter.ms/#/analytics/App_BlockLogs). 22 | 23 | ```json 24 | PUT https://appcenter.ms/v0.1/apps/{owner_name}/{app_name}/devices/block_logs/ 25 | ``` 26 | 27 | > [!NOTE] 28 | > This stops ingestion of all data coming from the App Center SDK, but won't delete existing data for the app. 29 | 30 | ## Stop collecting all SDK data for a specific device from the server 31 | 32 | To stop collection for a specific device, include the installation identifier in your call. 33 | 34 | ```json 35 | PUT https://appcenter.ms/v0.1/apps/{owner_name}/{app_name}/devices/block_logs/{install_id} 36 | ``` 37 | 38 | ## Stop collecting SDK data for a specific service from the client 39 | 40 | The App Center SDK can be configured to stop collecting data per service. Instructions for doing so can be found under the ["Other APIs" section for the SDK.](~/sdk/index.md) 41 | 42 | > [!NOTE] 43 | > This won't delete existing data for the app. 44 | -------------------------------------------------------------------------------- /docs/gdpr/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: General Data Protection Regulation 3 | description: How your GDPR Data Subject Rights are covered by App Center. 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 11/21/2019 8 | ms.topic: article 9 | ms.assetid: 7408A6E5-1016-43E1-9E44-5D8747A439D1 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # General Data Protection Regulation 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | Under GDPR, entities either control data, process data, or do a mixture of both. Visual Studio App Center serves primarily as a data processor and its customers as data controllers. In some limited cases, App Center serves as a data controller to its customers. 18 | 19 | We collect customer data and data from your application end users on your behalf. As such we provide you with two experiences: 20 | 1. You act as the data subject, submitting a request on your own behalf. 21 | 2. You act as the data controller, who must honor your app end user's rights as data subjects. 22 | 23 | In subsequent sections, you'll find instructions on how to manage your personal data and that of your customers. 24 | 25 | > [!NOTE] 26 | > This article provides steps for how to delete personal data from the device or service and can be used to support your obligations under the GDPR. If you’re looking for general information about GDPR, see the [GDPR section of the Service Trust portal](https://servicetrust.microsoft.com/ViewPage/GDPRGetStarted). 27 | -------------------------------------------------------------------------------- /docs/gdpr/install-id.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Application Install ID 3 | description: How to find an install ID 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/31/2018 8 | ms.topic: article 9 | ms.assetid: 76BF8E6E-DC82-4541-95B9-5CCCF0FDB9DF 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Application Install ID 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## What's an install ID? 18 | App Center doesn't directly collect personal information or user-generated content of your end users. We provide services accessed by the developer using our SDK or web site. The data transmitted to these services depends largely on the type of application you have built, and which of our services your app uses. 19 | 20 | For each App Center SDK installed inside your app, we automatically create a unique installation identifier (or install ID for short). This install ID makes it possible for our services to display and return meaningful information for a specific device. We don't map your end-user's identities to install IDs, but you can still map them for the purposes of GDPR compliance. 21 | 22 | ## Map install IDs to user IDs 23 | The easiest way to associate install IDs with users is via a login mechanism. In this pattern, the developer associates a login identity with an install ID on authentication. Since a new installation of the app SDK will result in an entirely new install ID, a robust design will include the possibility of many install IDs mapping to a single identity. For now, you must create an implementation yourself, while the App Center team looks at our designs and gauges customer interest in such a feature. 24 | 25 | Here is how to retrieve an install ID for.... 26 | * [UWP](/appcenter/sdk/other-apis/uwp#identify-installations) 27 | * [MAUI/Xamarin](/appcenter/sdk/other-apis/xamarin#identify-installations) 28 | * [Android](/appcenter/sdk/other-apis/android#identify-installations) 29 | * [iOS](/appcenter/sdk/other-apis/ios#identify-installations) 30 | * [macOS](/appcenter/sdk/other-apis/macos#identify-installations) 31 | * [React Native](/appcenter/sdk/other-apis/react-native#identify-installations) 32 | -------------------------------------------------------------------------------- /docs/gdpr/test-export.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Export Test Data 3 | description: How to export personal information from Test to your users 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/20/2018 8 | ms.topic: article 9 | ms.assetid: 46e6e17c-6b43-484f-98ff-1f92f8871c2b 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Export Test Data 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Overview 18 | This document covers the scenario where an App Center Test customer has a client whose data is on the same account. If this client requests their data be exported, App Center Test has APIs to satisfy this request. All the APIs detailed are public and documented in [App Center Swagger](https://openapi.appcenter.ms/#/test). For more information about App Center GDPR, visit [GDPR: Managing Your Data](/appcenter/gdpr/your-data). 19 | 20 | ## Export Test Data for a client 21 | When a client requires exporting their test reports, you may service this request using the following process: 22 | 23 | 1. [Generate an API token](/appcenter/api-docs/). 24 | 2. Call the [App Center Test API](https://openapi.appcenter.ms/#/test) to acquire a list of all the test runs IDs owned by the client requesting deletion. You'll need the app name, and the owner (user or organization) name. 25 | ```HTTP 26 | GET /v0.1/apps/{owner_name}/{app_name}/test_runs 27 | ``` 28 | ```HTTP 29 | GET https://appcenter.ms/api/v0.1/apps/CompanyOrg1/AndroidApp1/test_runs 30 | ``` 31 | 32 | 3. For each of the app IDs gathered in the previous step, make the following API call to export the data. This call returns all the files that have been uploaded for this app. The categories below for app test data. 33 | ```HTTP 34 | GET /v0.1/apps/{owner_name}/{app_name}/test/export 35 | ``` 36 | ```HTTP 37 | GET https://appcenter.ms/api/v0.1/apps/CompanyOrg1/AndroidApp1/test/export 38 | ``` 39 | 40 | Test Export API subcalls 41 | ```HTTP 42 | GET /v0.1/apps/{owner_name}/{app_name}/test/export/testRuns 43 | ``` 44 | ```HTTP 45 | GET /v0.1/apps/{owner_name}/{app_name}/test/export/pipelineTests 46 | ``` 47 | ```HTTP 48 | GET /v0.1/apps/{owner_name}/{app_name}/test/export/hashFiles 49 | ``` 50 | ```HTTP 51 | GET /v0.1/apps/{owner_name}/{app_name}/test/export/fileSetFiles 52 | ``` 53 | 54 | 5. Aggregate all of the exported data to a file, send to customer. 55 | -------------------------------------------------------------------------------- /docs/gdpr/test-forget-me.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Deleting Test Data 3 | description: How to delete personal information from Test 4 | keywords: GDPR, DSR, privacy, EU 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/26/2018 8 | ms.topic: article 9 | ms.assetid: 9ced3f3e-b047-4fb7-851f-4e3c6b62b77f 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # Deleting Test Data 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | This document covers the scenario where an App Center Test customer has a client whose data is on the same account. If this client requests their data be exported, App Center Test has APIs to satisfy this request. All the APIs detailed are public and documented in [App Center Swagger](https://openapi.appcenter.ms/#/test). For more information about App Center GDPR, visit [GDPR: Managing Your Data](/appcenter/gdpr/your-data). 18 | 19 | ## Deleting Test Data 20 | When a client requests deleting their test reports, you may service this request using the following process: 21 | 22 | 1. [Generate an API token](/appcenter/api-docs/). 23 | 2. Call the [App Center Test API](https://openapi.appcenter.ms/#/test) to acquire a list of all the test run IDs owned by the client requesting deletion. You'll need the app name, and the owner (user or organization) name. 24 | ```HTTP 25 | GET /v0.1/apps/{owner_name}/{app_name}/test_runs 26 | ``` 27 | ```HTTP 28 | GET https://appcenter.ms/api/v0.1/apps/CompanyOrg1/AndroidApp1/test_runs 29 | ``` 30 | 31 | 3. For each of the app IDs gathered in the previous step, make the following API call to delete the test run. 32 | ```HTTP 33 | DELETE /v0.1/apps/{owner_name}/{app_name}/test_runs/{test_run_id} 34 | ``` 35 | ```HTTP 36 | DELETE https://appcenter.ms/api/v0.1/apps/CompanyOrg1/AndroidApp1/test_runs/0ce0x71b-82ce-4d7a-8ce5-404a6a50d91a 37 | ``` 38 | 39 | 4. Completion of this task is achieved only if all the deletion calls return success. 40 | -------------------------------------------------------------------------------- /docs/general/allowlist.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Connections to allow list 3 | description: URLs to allow list 4 | keywords: allowlist, appcenter, networking 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 12/07/2020 8 | ms.topic: article 9 | ms.assetid: fb001bf2-3c2b-49a9-b839-2855c997950d 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # URLs to allow list for App Center 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | If you're behind a firewall and want to connect to App Center, here are the URLs to allow list for App Center: 18 | 19 | - api.appcenter.ms 20 | - api.mobile.azure.com 21 | - *.appcenter.ms 22 | 23 | ## IP Allowlist 24 | We do not currently provide a list of IP addresses or ranges that you need to allowlist to connect to App Center, since these IP addresses are subject to change. If you do require IP addresses, you can use a DNS service to translate the domain names into the corresponding IP addresses. 25 | -------------------------------------------------------------------------------- /docs/general/browsers.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Supported Browsers 3 | description: Table showing browser support across different platforms 4 | keywords: browsers 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 03/31/2020 8 | ms.topic: reference 9 | ms.assetid: 9b616aa1-079a-4bbc-abf5-6ffbdf53c0cf 10 | --- 11 | 12 | # App Center Supported Browsers 13 | 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 15 | 16 | > [!NOTE] 17 | > Unlisted browsers and versions might work, but aren't officially supported. 18 | 19 | ## Site Portal (https://appcenter.ms) 20 | 21 | | OS/Platform | Chrome | Edge | Firefox | Safari | 22 | |-------------|:--------------:|:--------------:|:--------------:|:-----------:| 23 | | Windows | Latest Version | Latest Version | Latest Version | ❌ | 24 | | Linux | Latest Version | Latest Version | Latest Version | ❌ | 25 | | macOS | Latest Version | Latest Version | Latest Version | 9.0 & Later | 26 | 27 | 28 | ## Install Portal (https://install.appcenter.ms) 29 | | OS/Platform | Chrome | Edge | Firefox | Safari | 30 | |-------------|:--------------:|:--------------:|:--------------:|:-----------:| 31 | | Android | 45 & Later | ❌ | ❌ | ❌ | 32 | | iOS | ❌ | ❌ | ❌ | 9.0 & Later | 33 | | Windows | Latest Version | Latest Version | Latest Version | ❌ | 34 | | Linux | Latest Version | Latest Version | Latest Version | ❌ | 35 | | macOS | Latest Version | Latest Version | Latest Version | 9.0 & Later | 36 | 37 | -------------------------------------------------------------------------------- /docs/general/configuring-aad-conditional-access.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Configuring Azure Active Directory Conditional Access 3 | description: Use Azure Active Directory Conditional Access with App Center 4 | keywords: dashboard Azure organizations "conditional access" 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/23/2019 8 | ms.topic: article 9 | ms.assetid: 48cd6f51-bd42-4f80-8ca9-390c7abecad4 10 | ms.service: vs-appcenter 11 | ms.custom: general 12 | --- 13 | 14 | # Configuring Azure Active Directory Conditional Access 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | Visual Studio App Center supports [Azure Active Directory Conditional Access](/azure/active-directory/conditional-access/overview). Azure Active Directory Conditional Access is an advanced feature of Azure AD that allows you to specify detailed policies that control who can access your resources. Using Conditional Access, you can protect your applications by limiting users' access based on things like groups, device type, location, and role. 19 | 20 | > [!IMPORTANT] 21 | > Azure Active Directory Conditional Access is available in the Premium tier of Azure AD. For more information about Azure AD Premium, see [Azure Active Directory pricing](https://azure.microsoft.com/pricing/details/active-directory/). 22 | 23 | ## Connecting your organization to Azure Active Directory 24 | If your App Center organization isn't already connected to an Azure Active Directory tenant, you must connect it first. See [Connecting to Azure Active Directory](./connecting-to-azure-active-directory.md) for how to do that. 25 | 26 | ## Setting up Conditional Access 27 | > [!NOTE] 28 | > This is an abbreviated guide to setting up Conditional Access. Full documentation is available in [What is Conditional Access?](/azure/active-directory/conditional-access/overview). 29 | 30 | In the [Azure portal](https://portal.azure.com), open your Active Directory tenant, then open the **Security** settings, and click on **Conditional Access**. 31 | 32 | In Conditional Access settings, click **New policy** to create a policy. 33 | 34 | ![Azure Active Directory Conditional Access](./images/conditional-access-2.png) 35 | 36 | In New policy settings, click on **Cloud apps or actions** and select Visual Studio App Center as the target of the policy. Then [select the other conditions](/azure/active-directory/conditional-access/best-practices) that you want to apply, enable the policy, and click **Create** to save it. 37 | 38 | ![AAD Conditional Access: Cloud apps or actions](./images/conditional-access-1.png) 39 | 40 | > [!TIP] 41 | > You can troubleshoot your conditional access policies with the [What If tool](/azure/active-directory/conditional-access/troubleshoot-conditional-access-what-if) in the Azure Portal. 42 | -------------------------------------------------------------------------------- /docs/general/images/account_is_already_associated_with_another_identity_provier_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/account_is_already_associated_with_another_identity_provier_error.png -------------------------------------------------------------------------------- /docs/general/images/add-aad-tenant-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/add-aad-tenant-1.png -------------------------------------------------------------------------------- /docs/general/images/add-aad-tenant-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/add-aad-tenant-2.png -------------------------------------------------------------------------------- /docs/general/images/add-aad-tenant-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/add-aad-tenant-3.png -------------------------------------------------------------------------------- /docs/general/images/conditional-access-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/conditional-access-1.png -------------------------------------------------------------------------------- /docs/general/images/conditional-access-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/conditional-access-2.png -------------------------------------------------------------------------------- /docs/general/images/sign_in.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/sign_in.png -------------------------------------------------------------------------------- /docs/general/images/sign_in_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/sign_in_arrow.png -------------------------------------------------------------------------------- /docs/general/images/sign_up_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/sign_up_arrow.png -------------------------------------------------------------------------------- /docs/general/images/sign_up_msa_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/general/images/sign_up_msa_arrow.png -------------------------------------------------------------------------------- /docs/general/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center General Info 3 | description: General information about App Center 4 | author: lucen-ms 5 | ms.author: lucen 6 | ms.date: 08/01/2019 7 | ms.topic: article 8 | ms.assetid: 49b3b1d7-4651-4adf-95a6-9c9cc2232269 9 | ms.service: vs-appcenter 10 | --- 11 | 12 | # General 13 | 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] -------------------------------------------------------------------------------- /docs/general/platform-limits.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Platform limits for App Center 3 | description: These are the size limits for various entities in App Center. 4 | keywords: limits distribution groups teams organizations releases 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 12/29/2023 8 | ms.topic: article 9 | ms.assetid: e25d003b-f5eb-4fd7-b64b-a68c178adf5c 10 | ms.service: vs-appcenter 11 | ms.custom: general 12 | --- 13 | 14 | # Platform limits for App Center 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | The following limits are in effect for App Center usage. 19 | 20 | > [!NOTE] 21 | > These limits are our default limits. To keep our services healthy, we might temporarily apply stricter limits. Contact App Center Support (you can use the ? icon on any App Center page) for questions about limits. 22 | 23 | - Maximum number of members in an organization: 5,000 members 24 | - Maximum number of members in a team: 2,000 members 25 | - Maximum number of members in a distribution group: 30,000 members 26 | - Maximum number of distribution groups for each app: 100 groups 27 | - Maximum number of apps for each account: 2,000 apps 28 | - Maximum number of apps per organization: 2,000 apps 29 | - Maximum number of teams assigned to an app: 100 teams 30 | - Maximum number of API tokens per account: 10,000 API tokens 31 | - Maximum number of API tokens for each organization: 10,000 API tokens 32 | - Maximum number of members for each app release: 2,000 members 33 | - Maximum number of apps configured per day: 5 apps 34 | - Maximum number of environment variables per configuration: 100 variables 35 | - Maximum number of apps created for each user/organization per hour: 10 apps 36 | - Maximum number of apps created for each user/organization per day: 20 apps 37 | - Maximum number of API requests per 5 minutes per IP: 500 requests 38 | -------------------------------------------------------------------------------- /docs/general/platform-service-matrix.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Platform Services Matrix 3 | description: App Center matrix for Operating System/Platforms and services 4 | keywords: matrix 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 11/12/2020 8 | ms.topic: article 9 | ms.assetid: 4966fa6c-ba1b-4656-89b0-5276c11a5a28 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # OS/Platform and Services Matrix 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | The table below lists all the Operating System and Platforms and their supported services in App Center: 18 | 19 | | OS/Platform | Distribute | Diagnostics | Analytics | 20 | | :--------------------- | :--------: | :-----: | :-------: | 21 | | Android | ✅ | ✅ | ✅ | 22 | | iOS | ✅ | ✅ | ✅ | 23 | | macOS | ✅† | ✅ | ✅ | 24 | | React Native - iOS | ✅† | ✅ | ✅ | 25 | | React Native - Android | ✅† | ✅ | ✅ | 26 | | tvOS | ❌ | ✅ | ✅ | 27 | | Unity - iOS | ✅ | ✅ | ✅ | 28 | | Unity - Android | ✅ | ✅ | ✅ | 29 | | Unity - UWP* | ✅† | ❌ | ✅ | 30 | | Windows - UWP | ✅† | ✅ | ✅ | 31 | | Windows - WPF | ✅† | ✅ | ✅ | 32 | | Windows - WinForms | ✅† | ✅ | ✅ | 33 | | Xamarin - iOS | ✅ | ✅ | ✅ | 34 | | Xamarin - Android | ✅ | ✅ | ✅ | 35 | | Xamarin - macOS | ✅ | ✅ | ✅ | 36 | 37 | \* - For UWP, HoloLens support hasn't been verified. 38 | † - In-app updates not supported for these platforms. 39 | -------------------------------------------------------------------------------- /docs/general/support-center.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Support 3 | description: Useful links for customers to provide feedback, get product update 4 | keywords: update,history,status,feature request,bugs 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/09/2020 8 | ms.topic: article 9 | ms.assetid: 7c512944-95f0-4b04-9ef4-52b785940360 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # App Center Support 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Documentation 18 | [Product Docs](~/index.yml) 19 | 20 | [API Docs](~/api-docs/index.md) 21 | 22 | ## Troubleshooting 23 | ### Services 24 | [Diagnostics](~/diagnostics/troubleshooting.md) 25 | 26 | [Analytics](~/analytics/faq.md) 27 | 28 | ### App Center SDK Troubleshooting 29 | [Android](~/sdk/troubleshooting/android.md) 30 | 31 | [iOS](~/sdk/troubleshooting/ios.md) 32 | 33 | [.NET](~/sdk/troubleshooting/xamarin.md) 34 | 35 | [macOS](~/sdk/troubleshooting/macos.md) 36 | 37 | #### Recent updates 38 | SDKs (open-sourced on GitHub) 39 | - [Android SDK](https://github.com/microsoft/appcenter-sdk-android) 40 | - [Apple SDK](https://github.com/microsoft/appcenter-sdk-apple) 41 | - [.NET SDK](https://github.com/microsoft/appcenter-sdk-dotnet) 42 | - [React Native SDK](https://github.com/Microsoft/appcenter-sdk-react-native) 43 | 44 | ## App Center status page 45 | Check if there are any ongoing issues on the [App Center status page](https://status.appcenter.ms). 46 | 47 | ## Contact us 48 | To get help, click the help menu (?) in the upper right corner of the App Center portal, then select **Contact support**. Once you fill out the form, our team will be in contact with you via email. Responsiveness might vary based on the support load at a given moment. Read more about [App Center support](../help.md). 49 | -------------------------------------------------------------------------------- /docs/images/app-center-feedback-options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/images/app-center-feedback-options.png -------------------------------------------------------------------------------- /docs/images/app-center-support-chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/images/app-center-support-chat.png -------------------------------------------------------------------------------- /docs/images/app-center-support-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/images/app-center-support-form.png -------------------------------------------------------------------------------- /docs/includes/retirement.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: include file 3 | ms.date: 05/05/2025 4 | ms.topic: include 5 | author: lucen 6 | ms.author: v-absaidov 7 | --- 8 | 9 | > [!IMPORTANT] 10 | > Visual Studio App Center was retired on March 31, 2025, except for the Analytics and Diagnostics features, which will continue to be supported until June 30, 2026. [Learn more.](https://aka.ms/appcenter/retire) 11 | -------------------------------------------------------------------------------- /docs/media/logo_ios.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | logo_ios 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /docs/media/logo_react.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 15 | 16 | logo_react 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /docs/media/logo_tvos.svg: -------------------------------------------------------------------------------- 1 | 2 | logo_tvos 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /docs/media/logo_unity.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /docs/quickstarts/android/analytics.md: -------------------------------------------------------------------------------- 1 | --- 2 | # required metadata 3 | title: View Custom Events and Track User Analytics 4 | description: Tutorial to help user set up analytics in Android, track custom events and check logflow. 5 | keywords: app center 6 | author: lucen-ms 7 | ms.author: lucen 8 | ms.date: 07/26/2017 9 | ms.topic: article 10 | ms.service: vs-appcenter 11 | ms.custom: samples 12 | ms.assetid: 2eab2986-32ce-4cc5-aa49-ab60a72bf456 13 | --- 14 | 15 | 16 | # View Custom Events and Track User Analytics 17 | 18 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 19 | 20 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample app. 21 | 22 | ## Open the app and view user analytics 23 | 1. Navigate to the app repository in your local machine and open the app module in Android Studio. 24 | 25 | 2. Click **Run > Run 'app'** from the toolbar. Create a new virtual device of your choice if one isn't available to you already, select it, and open the app in the Android Emulator. 26 | 27 | 3. Go to the **Analytics** service in [App Center](https://appcenter.ms/apps). 28 | 29 | Once the app runs on any device or simulator, you should start seeing users, session, and other information on the Overview page. 30 | 31 | ## Send and view custom events 32 | 33 | 1. Swipe over to the **Analytics** page in the Android Emulator in Android Studio. 34 | 35 | 2. In the sample app, press the **Send a sample event** button. 36 | 37 | 3. In the sample app, press the **Send event with color property** button. Choose a color. 38 | 39 | 4. Navigate to the **Analytics** service in [App Center](https://appcenter.ms/apps) and go to the **Events** section. 40 | 41 | 5. You should see data for both the sample and color event buttons. Click on the color event to see that the color you chose has been pressed at least once. 42 | 43 | 44 | In App Center, you can view detailed analytics about both buttons by clicking on the events, and even see how many people chose each color. 45 | -------------------------------------------------------------------------------- /docs/quickstarts/android/crashes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: View Crashes Sent From Android App in App Center 3 | description: Tutorial on viewing crashes from a sample Android app in App Center 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 07/28/2017 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: 9e2c6890-26e9-4b8a-a4fb-f43c8e55c1fb 11 | --- 12 | 13 | # View Crashes Sent From Android App in App Center 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | If you haven't already, follow the [getting started tutorial](getting-started.md) to set up the sample app. 18 | 19 | ## Crashing the sample app 20 | 1. Navigate to the app repository in your local machine and open the app module in Android Studio. 21 | 22 | 2. Click **Run > Run 'app'** from the toolbar. Create a new virtual device of your choice if one isn't available to you already, select it, and open the app in the Android Emulator. 23 | 24 | 3. Swipe over to the **Crashes** page. Tap the **Send a sample crash** button to crash the app. 25 | 26 | 4. **Reopen the app.** This sends the crash report to the App Center backend. 27 | 28 | 29 | ## View the crashes in App Center 30 | 1. Navigate to the **Crashes** service in App Center. It may take a couple minutes for the crash report to show up after reopening the app. 31 | 32 | 2. Click on the crash to view its details, such as its stack trace, affected devices, and more. 33 | -------------------------------------------------------------------------------- /docs/quickstarts/android/distribute.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Distribute Installable Sample App to Users 3 | description: Tutorial to distribute a sample Android app to a group of users in App Center. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 07/27/2017 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.custom: samples 11 | ms.assetid: 71de3de5-2def-462f-9177-228436ef336b 12 | --- 13 | 14 | # Distribute Installable Sample App to Users 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | ### Prerequisites 19 | - Follow the [getting started tutorial](getting-started.md) to set up the sample app. 20 | - Signed APK. Go to the [Android Developer Documentation](https://developer.android.com/studio/index.html) to learn about creating a new keystore and manually signing an APK. 21 | 22 | 23 | ## Choose a build to distribute 24 | Upload your own .apk file: 25 | Optional: From the Distribute service, click **New Group** at the top of the page to add people to test the app or collaborate with you. 26 | 1. Click **Distribute new release** at the top of the page. 27 | 28 | 2. Under **Upload your release**, navigate to the app-release.apk file that was generated when you signed the APK. Click Next. 29 | 30 | 3. Leave Release notes blank. Click Next. 31 | 32 | 4. Under **Who are you distributing this release to?** select the distribution group. Click Next. 33 | 34 | 5. Click **Distribute**. 35 | 36 | 37 | ## Install the sample app 38 | 1. You, and all other specified testers, should receive an email with a link to download the sample app. 39 | 40 | 2. Open the link and follow the instructions to register your device with App Center, and the app will begin installing. 41 | -------------------------------------------------------------------------------- /docs/quickstarts/android/images/newKeystore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/android/images/newKeystore.png -------------------------------------------------------------------------------- /docs/quickstarts/android/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Android Overview 3 | description: Landing page to navigate through Android tutorials. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 08/10/2021 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.custom: samples 11 | ms.assetid: d99d49f4-a1a7-4764-9b83-ef88ae5c2eef 12 | --- 13 | 14 | # Android Sample Overview 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | This tutorial series, in conjunction with this [sample Android app written in Java](https://github.com/microsoft/appcenter-sampleapp-android/tree/master), will help you get started with App Center for Android. 19 | 20 | Begin with the [Getting Started](getting-started.md) tutorial. After you've completed that, you can do the rest in the order below, or choose a specific tutorial to follow. 21 | 22 | | Title | Description | 23 | |:--------------------------------------|:-------------------------------| 24 | | [Getting Started](getting-started.md) | Set up the app | 25 | | [Distribute](distribute.md) | Distribute to a group of users | 26 | | [Crash](crashes.md) | Monitor application crashes | 27 | | [Analytics](analytics.md) | View user analytics | 28 | -------------------------------------------------------------------------------- /docs/quickstarts/ios/analytics.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: iOS Analytics Sample App Tutorials 3 | description: Tutorial to help user set up analytics in iOS, track custom events and check logflow. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/26/2017 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: 5c001eab-b3da-476e-ba84-2fa7eb6f500f 11 | --- 12 | 13 | 14 | # Analytics - Sample Swift (iOS) App and Tutorials 15 | 16 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 17 | 18 | In this tutorial, you'll learn to view custom events and other user analytics in App Center. Code to track these events is included in the sample Swift app. 19 | 20 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample Swift app. 21 | 22 | ## Open the app and view user Analytics 23 | To see users, session, and other information on the Overview page: 24 | 1. Run the app using `.xcworkspace`, or from your device. 25 | 26 | 2. Interact with the sample app from the simulator or device. 27 | 28 | 3. Go to the **Analytics** service in [App Center](https://appcenter.ms/apps). There may be a short delay before the page is updated. 29 | 30 | ## Send and view custom events 31 | 32 | 1. In the sample app, press the **Send a sample event** button. 33 | 34 | 2. In the sample app, press the **Send event with color property** button. Choose a color. 35 | 36 | 3. Navigate to the **Analytics** service in [App Center](https://appcenter.ms/apps) and go to the **Events** section. 37 | 38 | 4. You should see data for both the sample and color event buttons. Click on the color event to see that the color you chose has been pressed at least once. 39 | 40 | In App Center, you can view detailed analytics about both buttons by clicking on the events, and even see how many people chose each color. 41 | 42 | To make this possible, code from the App Center SDK is included. It will specifically track when these buttons are pressed. These custom events can have multiple properties - in this case, the color chosen is an event property. 43 | -------------------------------------------------------------------------------- /docs/quickstarts/ios/crashes.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Crashes in iOS Swift Apps 3 | description: Tutorial on viewing crashes from a sample iOS app in App Center 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/28/2017 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: c1a3c385-3f62-4a6f-8cd8-661bdb4db795 11 | --- 12 | 13 | # Crashes - Sample Swift (iOS) App and Tutorials 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | In this tutorial, you'll learn to view crashes from a sample Swift app in App Center. 18 | 19 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample app. 20 | 21 | ## Get the symbols 22 | To symbolicate crashes in iOS, App Center needs you to upload a **symbol file to App Center**. 23 | 24 | ## Upload symbols 25 | 1. Navigate to the **Crashes** service and go to the **Symbols** page. 26 | 2. Click **Upload symbols** at the top of the page and upload the symbol file you downloaded. 27 | 28 | ## Open the sample app 29 | 1. Run the sample app. If you're running it in the **Xcode simulator**, follow these additional steps to detach the debugger: 30 | 2. Press the **Stop** icon to stop running the app. 31 | 3. In the simulator, close the app. Press the home button twice (cmd+shift+h) and swipe up on the sample app. 32 | 4. Reopen the app by clicking on its icon. 33 | 34 | ## Crashing the sample app 35 | 1. Swipe over to the **Crashes** page. Tap the **Send a sample crash** button to crash the app. 36 | 2. **Reopen the app.** This sends the crash report to the App Center backend. 37 | 38 | ## View the crashes in App Center 39 | 1. Navigate to the **Crashes** service in App Center. It may take a couple minutes for the crash report to show up after reopening the app. 40 | 2. Click on the crash to view its details, such as its stack trace, affected devices, and more. 41 | -------------------------------------------------------------------------------- /docs/quickstarts/ios/distribute.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: iOS Distribute Sample Tutorials 3 | description: Tutorial to distribute a sample iOS app to a group in App Center. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/27/2017 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: e4c351f6-0284-4747-a682-3e0773d3cfe1 11 | --- 12 | 13 | # Distribute - Sample Swift (iOS) App and Tutorials 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | In this tutorial, you'll learn to distribute a sample Swift app to a group of users, who can install the app on their device. 18 | 19 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample app. 20 | 21 | 22 | ### Prerequisites 23 | - Optional: Provisioning Profile and Certificate. Go to the [Apple Developer Documentation](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html) to learn about creating an App ID to codesign the sample iOS app with. 24 | 25 | ## Choose a build to Distribute 26 | Upload your own .ipa file from Xcode. Skip this if you followed the steps to distribute above. 27 | 1. From the **Distribute** service, click **Distribute new release** at the top. 28 | 29 | 2. Click **Distribute new release** at the top of the page. 30 | 31 | 3. Upload your **.ipa** file. 32 | 33 | 4. Click **Next** twice. Leave the **Release notes** blank. 34 | 35 | ## Distribute the app 36 | 37 | By creating groups of users, you can easily distribute to them all at once, and add new testers when needed: 38 | 39 | 1. Click **New distribution group**. 40 | 41 | 2. Name the group **Beta Testers** and add your email in the invitation box below. 42 | 43 | 3. Press **Create Group**. 44 | 45 | 4. Click **Next** twice and then **Distribute build**. 46 | 47 | ## Install the sample app 48 | 1. You should receive an email with a link to download the sample app. 49 | 50 | 2. Open the link and follow the instructions to register your device with App Center, and the app will begin installing. 51 | -------------------------------------------------------------------------------- /docs/quickstarts/ios/images/AppID_push_ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/ios/images/AppID_push_ios.png -------------------------------------------------------------------------------- /docs/quickstarts/ios/images/Download_symbols_ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/ios/images/Download_symbols_ios.png -------------------------------------------------------------------------------- /docs/quickstarts/ios/images/Enable_push_ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/ios/images/Enable_push_ios.png -------------------------------------------------------------------------------- /docs/quickstarts/ios/images/Select_device_ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/ios/images/Select_device_ios.png -------------------------------------------------------------------------------- /docs/quickstarts/ios/images/Signing_builds_ios.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/ios/images/Signing_builds_ios.png -------------------------------------------------------------------------------- /docs/quickstarts/ios/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: iOS Overview 3 | description: Landing page to navigate through iOS tutorials. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 08/10/2021 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: b3e063f7-4043-450b-b651-d8c707e9d8cc 11 | --- 12 | 13 | # Overview - Sample Swift (iOS) App and Tutorials 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | These quickstart tutorials will help you onboard to App Center for iOS. The [sample swift app](https://github.com/microsoft/appcenter-sampleapp-ios-swift/tree/master) has the App Center SDK already integrated, and links to its tutorials are below. 18 | 19 | Begin with the **Getting Started** tutorial. After you've completed that, you can do the rest in the order below, or choose a specific tutorial to follow. 20 | 21 | ## Contents 22 | 23 | | Title | Description | 24 | |:--------------------------------------|:-------------------------------| 25 | | [Getting Started](getting-started.md) | Set up the app | 26 | | [Distribute](distribute.md) | Distribute to a group of users | 27 | | [Crash](crashes.md) | Monitor application crashes | 28 | | [Analytics](analytics.md) | View user analytics | 29 | -------------------------------------------------------------------------------- /docs/quickstarts/learning-resources.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Learning Resources 3 | description: Links to additional resources related to App Center 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/02/2020 8 | ms.topic: article 9 | ms.assetid: aefc34a7-9e33-4f96-a91c-a508763aee35 10 | ms.service: vs-appcenter 11 | --- 12 | 13 | # App Center Learning Resources 14 | 15 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 16 | 17 | ## Microsoft Learn 18 | [Introduction to App Center](/training/modules/intro-to-app-center/) 19 | Characterize the types of services offered by App Center. Describe the use of App Center to distribute, and analyze usage of apps. 20 | 21 | In this module, you'll: 22 | - Evaluate whether App Center is appropriate to help improve mobile development processes. 23 | - Describe how the App Center services can help create development processes to deliver quality mobile apps efficiently. 24 | -------------------------------------------------------------------------------- /docs/quickstarts/macOS/analytics.md: -------------------------------------------------------------------------------- 1 | --- 2 | # required metadata 3 | title: macOS Analytics Sample App Tutorials 4 | description: Tutorial to help user set up analytics in macOS, track custom events and check logflow. 5 | keywords: app center 6 | author: lucen-ms 7 | ms.author: lucen 8 | ms.date: 11/15/2017 9 | ms.topic: article 10 | ms.service: vs-appcenter 11 | ms.assetid: 06325871-3fc5-4df6-a054-e84861b9e71a 12 | ms.tgt_pltfrm: macos 13 | dev_langs: 14 | - swift 15 | --- 16 | 17 | 18 | # Analytics - Sample Swift App (macOS) and Tutorials 19 | 20 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 21 | 22 | In this tutorial, you'll learn to view custom events and other user analytics in App Center. Code to track these events is included in the sample Swift app. 23 | 24 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample Swift app. 25 | 26 | ## Open the app and view user Analytics 27 | To see users, session, and other information on the Overview page: 28 | 1. Run the app using `.xcworkspace`, or from your device. 29 | 30 | 2. Interact with the sample app from your device. 31 | 32 | 3. Go to the **Analytics** service in [App Center](https://appcenter.ms/apps). There may be a short delay before the page is updated. 33 | 34 | ## Send and view custom events 35 | 36 | 1. In the sample app, press the **Send a sample event** button. 37 | 38 | 2. In the sample app, press the **Send event with color property** button. Choose a color. 39 | 40 | 3. Navigate to the **Analytics** service in [App Center](https://appcenter.ms/apps) and go to the **Events** section. 41 | 42 | 4. You should see data for both the sample and color event buttons. Click on the color event to see that the color you chose has been pressed at least once. 43 | 44 | In App Center, you can view detailed analytics about both buttons by clicking on the events, and even see how many people chose each color. 45 | 46 | To make this possible, code from the App Center SDK is included. It will specifically track when these buttons are pressed. These custom events can have multiple properties - in this case, the color chosen is an event property. 47 | -------------------------------------------------------------------------------- /docs/quickstarts/macOS/crashes.md: -------------------------------------------------------------------------------- 1 | --- 2 | # required metadata 3 | 4 | title: Crashes in macOS Swift apps 5 | description: Tutorial on viewing crashes from a sample macOS app in App Center 6 | keywords: app center 7 | author: lucen-ms 8 | ms.author: lucen 9 | ms.date: 11/15/2017 10 | ms.topic: article 11 | ms.service: vs-appcenter 12 | ms.assetid: 00d04bcd-b0a1-408c-a84c-2afd2992c792 13 | ms.tgt_pltfrm: macos 14 | dev_langs: 15 | - swift 16 | --- 17 | 18 | # Crashes - Sample Swift (macOS) App and Tutorials 19 | 20 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 21 | 22 | In this tutorial, you'll learn to view crashes from a sample Swift app in App Center. 23 | 24 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample app. 25 | 26 | ## Get the symbols 27 | To symbolicate crashes in macOS, App Center needs you to upload a **symbol file to App Center**. 28 | 29 | ## Upload symbols 30 | 1. Navigate to the **Crashes** service and go to the **Symbols** page. 31 | 32 | 2. Click **Upload symbols** at the top of the page and upload the symbol file you downloaded. 33 | 34 | ## Open the sample app 35 | 1. Run the sample app. If you're running it from **Xcode**, follow these additional steps to detach the debugger: 36 | 37 | 2. Right-click on the app icon in the dock, **Options** then **Keep in Dock**. 38 | 39 | 3. Press the **Stop** icon to stop running the app. 40 | 41 | 4. Reopen the app by clicking on its icon in the dock. 42 | 43 | ## Crashing the sample app 44 | 1. Navigate to the **Crashes** page. Click the **Send a sample crash** button to crash the app. 45 | 46 | 2. **Reopen the app.** This sends the crash report to the App Center backend. 47 | 48 | ## View the crashes in App Center 49 | 1. Navigate to the **Crashes** service in App Center. It may take a couple minutes for the crash report to show up after reopening the app. 50 | 2. Click on the crash to view its details, such as its stack trace, affected devices, and more. 51 | -------------------------------------------------------------------------------- /docs/quickstarts/macOS/distribute.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: macOS Distribute Sample Tutorials 3 | description: Tutorial to distribute a sample macOS app to a group in App Center. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/27/2017 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: 35ee91dd-9660-480f-8db2-f3f4a04673f8 11 | ms.tgt_pltfrm: macos 12 | dev_langs: 13 | - swift 14 | --- 15 | 16 | # Distribute - Sample Swift (macOS) App and Tutorials 17 | 18 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 19 | 20 | In this tutorial, you'll learn to distribute a sample Swift app to a group of users, who can install the app on their device. 21 | 22 | If you haven't already, first follow the [getting started tutorial](getting-started.md) to set up the sample app. 23 | 24 | 25 | ### Prerequisites 26 | - Optional: Provisioning Profile and Certificate. Go to the [Apple Developer Documentation](https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingProfiles/MaintainingProfiles.html) to learn about creating an App ID to codesign the sample app with. 27 | 28 | ## Choose a build to Distribute 29 | Upload your own .app bundle zipped from Xcode. Skip this if you followed the steps to distribute above. 30 | 1. From the **Distribute** service, click **Distribute new release** at the top. 31 | 32 | 2. Click **Distribute new release** at the top of the page. 33 | 34 | 3. Upload your **.app** bundle. 35 | 36 | 4. Click **Next** twice. Leave the **Release notes** blank. 37 | 38 | ## Distribute the app 39 | 40 | By creating groups of users, you can easily distribute to them all at once, and add new testers when needed: 41 | 42 | 1. Click **New distribution group**. 43 | 44 | 2. Name the group **Beta Testers** and add your email in the invitation box below. 45 | 46 | 3. Press **Create Group**. 47 | 48 | 4. Click **Next** twice and then **Distribute build**. 49 | 50 | ## Install the sample app 51 | 1. You should receive an email with a link to download the sample app. 52 | 53 | 2. Open the link and follow the instructions to register your device with App Center, and the app will begin installing. 54 | -------------------------------------------------------------------------------- /docs/quickstarts/macOS/images/AppID_push_macOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/macOS/images/AppID_push_macOS.png -------------------------------------------------------------------------------- /docs/quickstarts/macOS/images/Download_symbols_macOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/macOS/images/Download_symbols_macOS.png -------------------------------------------------------------------------------- /docs/quickstarts/macOS/images/Enable_push_macOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/macOS/images/Enable_push_macOS.png -------------------------------------------------------------------------------- /docs/quickstarts/macOS/images/Signing_builds_macOS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/quickstarts/macOS/images/Signing_builds_macOS.png -------------------------------------------------------------------------------- /docs/quickstarts/macOS/overview.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: macOS Overview 3 | description: Landing page to navigate through macOS tutorials. 4 | keywords: app center 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 08/10/2021 8 | ms.topic: article 9 | ms.service: vs-appcenter 10 | ms.assetid: a58e7386-11f5-427d-9afc-4534295344f9 11 | ms.tgt_pltfrm: macos 12 | dev_langs: 13 | - swift 14 | --- 15 | 16 | # Overview - Sample Swift (macOS) App and Tutorials 17 | 18 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 19 | 20 | These quickstart tutorials will help you onboard to App Center for macOS. The [sample swift app](https://github.com/VSAppCenter/sampleapp-macos-swift) has the App Center SDK already integrated, and links to its tutorials are below. 21 | 22 | Begin with the **Getting Started** tutorial. After you've completed that, you can do the rest in the order below, or choose a specific tutorial to follow. 23 | 24 | ## Contents 25 | 26 | | Title | Description | 27 | |:--------------------------------------|:-------------------------------| 28 | | [Getting Started](getting-started.md) | Set up the app | 29 | | [Distribute](distribute.md) | Distribute to a group of users | 30 | | [Crash](crashes.md) | Monitor application crashes | 31 | | [Analytics](analytics.md) | View user analytics | 32 | -------------------------------------------------------------------------------- /docs/sdk/analytics/includes/manuall-session-tracker.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.date: 11/16/2021 5 | ms.topic: include 6 | --- 7 | 8 | ## Manage start session 9 | 10 | By default, the session ID depends on the lifecycle of the application. If you want to control the start of a new session manually, follow the next steps: 11 | 12 | > [!NOTE] 13 | > Pay attention that each call of **Analytics.StartSession()** API will generate a new session. If in manual session tracker mode this API will not be called then all sending logs will have a null session value. 14 | 15 | > [!NOTE] 16 | > Pay attention that after a new application launch the session id will be regenerated. 17 | -------------------------------------------------------------------------------- /docs/sdk/analytics/ios.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Analytics for iOS 3 | description: App Center Analytics for iOS 4 | keywords: analytics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/22/2020 8 | ms.topic: article 9 | ms.assetid: f5270e0d-6012-4717-9ce5-a7097e8f323e 10 | ms.custom: sdk 11 | ms.tgt_pltfrm: ios 12 | dev_langs: 13 | - swift 14 | - objc 15 | --- 16 | 17 | # App Center Analytics (iOS) 18 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 19 | 20 | > [!div class="op_single_selector"] 21 | > * [Android](android.md) 22 | > * [iOS](ios.md) 23 | > * [React Native](react-native.md) 24 | > * [Windows](windows.md) 25 | > * [MAUI/Xamarin](xamarin.md) 26 | > * [Unity](unity.md) 27 | > * [macOS](macos.md) 28 | > * [tvOS](tvos.md) 29 | 30 | App Center Analytics helps you understand user behavior and customer engagement to improve your app. The SDK automatically captures session count and device properties like model, OS version, etc. You can define your own custom events to measure things that matter to you. All the information captured is available in the App Center portal for you to analyze the data. 31 | 32 | > [!NOTE] 33 | > iOS devices without a SIM card won't send the report with carrier country code to the App Center portal. If you want to provide a country value, use the `setCountryCode` method to override the country code from your device location. 34 | 35 | > [!NOTE] 36 | > In the `4.0.0` version of App Center breaking changes were introduced. Follow the [Migrate to App Center SDK 4.0.0 and higher](../getting-started/migration/apple-sdk-update.md) section to migrate App Center from previous versions. 37 | 38 | Follow the [Get started](~/sdk/getting-started/ios.md) section if you haven't set up the SDK in your application yet. 39 | 40 | [!INCLUDE [apple common methods](includes/apple-common-methods.md)] 41 | -------------------------------------------------------------------------------- /docs/sdk/analytics/macos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Analytics for macOS 3 | description: App Center Analytics for macOS 4 | keywords: analytics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/22/2020 8 | ms.topic: article 9 | ms.assetid: bec43c2c-55d5-11e7-907b-a6006ad3dba0 10 | ms.custom: sdk 11 | ms.tgt_pltfrm: macos 12 | dev_langs: 13 | - swift 14 | - objc 15 | --- 16 | 17 | # App Center Analytics (macOS) 18 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 19 | 20 | > [!div class="op_single_selector"] 21 | > * [Android](android.md) 22 | > * [iOS](ios.md) 23 | > * [React Native](react-native.md) 24 | > * [Windows](windows.md) 25 | > * [MAUI/Xamarin](xamarin.md) 26 | > * [Unity](unity.md) 27 | > * [macOS](macos.md) 28 | > * [tvOS](tvos.md) 29 | 30 | App Center Analytics helps you understand user behavior and customer engagement to improve your app. The SDK automatically captures session count and device properties like model, OS version, etc. You can define your own custom events to measure things that matter to you. All the information captured is available in the App Center portal for you to analyze the data. 31 | 32 | > [!NOTE] 33 | > Carrier country and carrier name aren't available on App Center Analytics for macOS, but you can set carrier country with your device location. 34 | 35 | > [!NOTE] 36 | > In the `4.0.0` version of App Center breaking changes were introduced. Follow the [Migrate to App Center SDK 4.0.0 and higher](../getting-started/migration/apple-sdk-update.md) section to migrate App Center from previous versions. 37 | 38 | Follow the [Get started](~/sdk/getting-started/macos.md) section if you haven't set up the SDK in your application yet. 39 | 40 | [!INCLUDE [apple common methods](includes/apple-common-methods.md)] -------------------------------------------------------------------------------- /docs/sdk/analytics/tvos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: App Center Analytics for tvOS 3 | description: App Center Analytics for tvOS 4 | keywords: analytics 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/22/2020 8 | ms.topic: article 9 | ms.assetid: aec43c2c-55d5-11e7-907b-a6006ad3dba0 10 | ms.custom: sdk 11 | ms.tgt_pltfrm: tvOS 12 | dev_langs: 13 | - swift 14 | - objc 15 | --- 16 | 17 | # App Center Analytics (tvOS) 18 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 19 | 20 | > [!div class="op_single_selector"] 21 | > * [Android](android.md) 22 | > * [iOS](ios.md) 23 | > * [React Native](react-native.md) 24 | > * [Windows](windows.md) 25 | > * [MAUI/Xamarin](xamarin.md) 26 | > * [Unity](unity.md) 27 | > * [macOS](macos.md) 28 | > * [tvOS](tvos.md) 29 | 30 | App Center Analytics helps you understand user behavior and customer engagement to improve your app. The SDK automatically captures session count and device properties like model, OS version, etc. You can define your own custom events to measure things that matter to you. All the information captured is available in the App Center portal for you to analyze the data. 31 | 32 | > [!NOTE] 33 | > Carrier country and carrier name aren't available on App Center Analytics for tvOS, but you can set carrier country with your device location. 34 | 35 | > [!NOTE] 36 | > In the `4.0.0` version of App Center breaking changes were introduced. Follow the [Migrate to App Center SDK 4.0.0 and higher](../getting-started/migration/apple-sdk-update.md) section to migrate App Center from previous versions. 37 | 38 | Follow the [Getting started](~/sdk/getting-started/tvos.md) section if you haven't set up the SDK in your application yet. 39 | 40 | [!INCLUDE [apple common methods](includes/apple-common-methods.md)] 41 | -------------------------------------------------------------------------------- /docs/sdk/distribute/images/unity_distribute_debug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/sdk/distribute/images/unity_distribute_debug.png -------------------------------------------------------------------------------- /docs/sdk/distribute/includes/android-10-package-installer-restrictions.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.date: 10/26/2021 5 | ms.topic: include 6 | ms.tgt_pltfrm: android 7 | --- 8 | 9 | > [!NOTE] 10 | > Android 10 or higher has restrictions on launch activity from the background. Please see article about [restrictions on starting activities from the background](https://developer.android.com/guide/components/activities/background-starts). 11 | 12 | > [!NOTE] 13 | > Apps running on Android 10 (Go edition) cannot receive the **SYSTEM_ALERT_WINDOW** permission. Please see article about [SYSTEM_ALERT_WINDOW on Go devices](https://developer.android.com/about/versions/10/behavior-changes-all#sysalert-go). 14 | 15 | > [!NOTE] 16 | > Beginning with Android 11, `ACTION_MANAGE_OVERLAY_PERMISSION` intents always bring the user to the top-level Settings screen, where the user can grant or revoke the `SYSTEM_ALERT_WINDOW` permissions for apps. Please see article about [permissions updates in Android 11](https://developer.android.com/about/versions/11/privacy/permissions#manage_overlay). 17 | -------------------------------------------------------------------------------- /docs/sdk/distribute/includes/ios-manual-integration.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.date: 09/13/2021 5 | ms.topic: include 6 | ms.tgt_pltfrm: ios 7 | --- 8 | 9 | If you don't want to use Cocoapods, you can integrate the modules by copying the binaries into your project. Follow the steps below: 10 | 11 | [!INCLUDE [xcframework support](../../getting-started/includes/xcframeworks.md)] 12 | 13 | 1. Download the [App Center SDK](https://github.com/Microsoft/AppCenter-SDK-Apple/releases) frameworks provided as a zip file. 14 | 15 | 2. Unzip the file and you'll see a folder called **AppCenter-SDK-Apple/iOS** that contains different frameworks for each App Center service. The framework called `AppCenter` is required in the project as it contains code that's shared between the different modules. 16 | 17 | 3. [Optional] Create a subdirectory for 3rd-party libraries. 18 | * As a best practice, 3rd-party libraries are usually inside a subdirectory, often called **Vendor**. If your project isn't organized with a subdirectory for libraries, create a **Vendor** subdirectory now. 19 | * Create a group called **Vendor** inside your Xcode project to mimic the file structure on disk. 20 | 21 | 4. Open Finder and copy the unzipped **AppCenter-SDK-Apple/iOS** folder into your project's folder at the location where you want it. 22 | 23 | 5. Add the SDK framework to the project in Xcode: 24 | * Make sure the Project Navigator is visible (⌘+1). 25 | * Now drag and drop **AppCenter.framework**, **AppCenterDistribute.framework**, and **AppCenterDistributeResources.bundle** from the Finder (the ones inside the **Vendor** folder) into Xcode's Project Navigator. **AppCenter.framework** is required to start the SDK. Make sure it's added to your project, otherwise the other modules won't work, and your project won't compile successfully. 26 | * A dialog will appear, make sure your app target is checked. Then click **Finish**. -------------------------------------------------------------------------------- /docs/sdk/getting-started/images/unity_configuration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/docs/sdk/getting-started/images/unity_configuration.png -------------------------------------------------------------------------------- /docs/sdk/getting-started/includes/android-backup-rules-android-12.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.date: 10/13/2021 5 | ms.topic: include 6 | --- 7 | 8 | 2. Open the project’s **AndroidManifest.xml** file. Add the `android:dataExtractionRules` attribute to the `` element. It should point to the **appcenter_backup_rule.xml** resource file. 9 | 10 | ```text 11 | android:dataExtractionRules="@xml/appcenter_backup_rule" 12 | ``` 13 | 14 | 3. Add the following backup rules to the **appcenter_backup_rule.xml** file: 15 | 16 | ```xml 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | ``` 34 | -------------------------------------------------------------------------------- /docs/sdk/getting-started/includes/android-backup-rules-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.date: 10/13/2021 5 | ms.topic: include 6 | --- 7 | 8 | 2. Open the project’s **AndroidManifest.xml** file. Add the `android:fullBackupContent` attribute to the `` element. It should point to the **appcenter_backup_rule.xml** resource file. 9 | 10 | ```text 11 | android:fullBackupContent="@xml/appcenter_backup_rule" 12 | ``` 13 | 14 | 3. Add the following backup rules to the **appcenter_backup_rule.xml** file: 15 | 16 | ```xml 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | ``` 25 | -------------------------------------------------------------------------------- /docs/sdk/getting-started/includes/apple-configure-appcenter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shared docs for Apple SDKs 3 | description: Shared docs for Apple SDKs 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 01/18/2021 8 | ms.topic: include 9 | ms.assetid: 1cef8428-597e-11eb-ae93-0242ac130002 10 | ms.tgt_pltfrm: apple 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | If you need to start App Center services separately, you should: 16 | 17 | 1. Configure or start it with the App Secret. 18 | 1. If the code can be called multiple times, check if the App Center is already configured. 19 | 1. Start the required service(s) without the App Secret. 20 | 21 | ```objc 22 | [MSACAppCenter configureWithAppSecret:@"{Your App Secret}"]; 23 | if ([MSACAppCenter isConfigured]) { 24 | [MSACAppCenter startService:[MSACAnalytics class]]; 25 | [MSACAppCenter startService:[MSACCrashes class]]; 26 | } 27 | ``` 28 | ```swift 29 | AppCenter.configure(withAppSecret: "{Your App Secret}") 30 | if AppCenter.isConfigured { 31 | AppCenter.startService(Analytics.self) 32 | AppCenter.startService(Crashes.self) 33 | } 34 | ``` 35 | -------------------------------------------------------------------------------- /docs/sdk/getting-started/includes/swift-package-manager.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shared docs for Apple Swift Package Manager 3 | description: Shared docs for Apple Swift Package Manager 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 01/04/2021 8 | ms.topic: include 9 | ms.assetid: 12b31177-2d25-4fda-a193-136e84049f90 10 | ms.tgt_pltfrm: apple 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | ### 3.3 Integration via Swift Package Manager 17 | 18 | 1. From the Xcode menu click **File > Swift Packages > Add Package Dependency**. 19 | 1. In the dialog that appears, enter the repository URL: https://github.com/microsoft/appcenter-sdk-apple.git. 20 | 1. In **Version**, select **Up to Next Major** and take the default option. 21 | 1. Choose the modules you need in the **Package Product** column. 22 | 23 | Now that you've integrated the frameworks in your application, it's time to start the SDK and make use of the App Center services. 24 | 25 | > [!NOTE] 26 | > If you're integrating App Center via SwiftPM and want to use it in your app's extension target as well, make sure that you provide `DISABLE_DIAMOND_PROBLEM_DIAGNOSTIC=YES` in your configuration. This is necessary to avoid SwiftPM limitations in linking a module to multiple targets. 27 | -------------------------------------------------------------------------------- /docs/sdk/getting-started/includes/windows-configure-appcenter.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shared docs for .Net SDKs 3 | description: Shared docs for .Net SDKs 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 01/18/2021 8 | ms.topic: include 9 | ms.assetid: a05d996a-5980-11eb-ae93-0242ac130002 10 | ms.tgt_pltfrm: wpf-winforms 11 | dev_langs: 12 | - csharp 13 | --- 14 | If you need to start App Center services separately, you should: 15 | 16 | 1. Configure or start it with the App Secret. 17 | 1. If the code can be called multiple times, check if the App Center is already configured. 18 | 1. Start the required service(s) without the App Secret. 19 | 20 | ```csharp 21 | AppCenter.Configure("{Your App Secret}"); 22 | if (AppCenter.Configured) 23 | { 24 | AppCenter.Start(typeof(Analytics)); 25 | AppCenter.Start(typeof(Crashes)); 26 | } 27 | ``` 28 | -------------------------------------------------------------------------------- /docs/sdk/getting-started/includes/xcframeworks.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Shared docs for XCFrameworks 3 | description: Shared docs for XCFrameworks 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 05/04/2020 8 | ms.topic: include 9 | ms.assetid: a646eee8-aed8-4bcb-8d06-686beb8d1b5d 10 | ms.tgt_pltfrm: apple 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | > [!NOTE] 17 | > App Center SDK supports the use of `XCframework`. If you want to integrate XCframeworks into your project, download the **AppCenter-SDK-Apple-XCFramework.zip** from the [releases page](https://github.com/microsoft/appcenter-sdk-apple/releases) and unzip it. Resulting folder contents aren't platform-specific, instead it contains XCframeworks for each module. They can be integrated the same way as usual frameworks, as described below. 18 | -------------------------------------------------------------------------------- /docs/sdk/getting-started/ios-extensions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Get Started with iOS Extensions 3 | description: Get started iOS Extensions 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/22/2020 8 | ms.topic: article 9 | ms.assetid: 598397ca-c113-4b19-be3f-d8397015ff9d 10 | ms.tgt_pltfrm: ios 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | # Get Started with iOS extensions 17 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 18 | 19 | > [!div class="op_single_selector"] 20 | > * [Android](android.md) 21 | > * [iOS](ios.md) 22 | > * [iOS Extensions](ios-extensions.md) 23 | > * [React Native](react-native.md) 24 | > * [MAUI/Xamarin](xamarin.md) 25 | > * [UWP](uwp.md) 26 | > * [WPF/WinForms](wpf-winforms.md) 27 | > * [Unity](unity.md) 28 | > * [macOS](macos.md) 29 | > * [macOS Extensions](macos-extensions.md) 30 | > * [tvOS](tvos.md) 31 | 32 | Application extensions only support crash reporting. 33 | 34 | To learn how to add App Center SDK to your container app, refer to the documentation for [App Center iOS Getting Started](./ios.md). 35 | 36 | Let's get started with setting up App Center iOS SDK in your app extension to use App Center Crashes. 37 | 38 | ## 1. Prerequisites 39 | 40 | The following requirements must be met to use App Center SDK: 41 | 42 | * Your iOS project is set up in Xcode 13 or later on macOS version 10.14.4 or later. 43 | * You're targeting devices running on ios 11.0 or later. 44 | * You're not using any other library that provides Crash Reporting functionality. 45 | 46 | ## 2. Create your app in the App Center Portal to obtain the App Secret 47 | 48 | If you've already created your app in the App Center portal, you can skip this step. 49 | 50 | 1. Head over to [appcenter.ms](https://appcenter.ms). 51 | 2. Sign up or log in and hit the blue button on the top right corner of the portal that says **Add new** and select **Add new app** from the dropdown menu. 52 | 3. Enter a name and an optional description for your app. 53 | 4. Select **iOS** as the OS and **Objective-C/Swift** as a platform. 54 | 5. Hit the button at the bottom right that says **Add new app**. 55 | 56 | Once you've created an app, you can obtain its **App Secret** on the **Settings** page on the App Center Portal. At the top right-hand corner of the **Settings** page, click on the **triple vertical dots** and select `Copy app secret` to get your App Secret. 57 | 58 | > [!NOTE] 59 | > Using an existing App Secret from another iOS project has side effects. App Center doesn't support filtering by project on the same App Center application. For instance listing crashes for a particular version will list all the crashes from both projects for this version without distinction. It can be confusing. 60 | 61 | > [!NOTE] 62 | > In the `4.0.0` version of App Center breaking changes were introduced. Follow the [Migrate to App Center SDK 4.0.0 and higher](../getting-started/migration/apple-sdk-update.md) section to migrate App Center from previous versions. 63 | 64 | [!INCLUDE [ios macos extension](includes/ios-macos-extensions.md)] 65 | 66 | Look at the documentation for [App Center Crashes](~/sdk/crashes/ios.md) to learn how to customize your app extension and use more advanced functionalities. -------------------------------------------------------------------------------- /docs/sdk/getting-started/macos-extensions.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Get Started with macOS Extensions 3 | description: Get started with macOS extensions 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 10/22/2020 8 | ms.topic: article 9 | ms.assetid: bf7b3627-3ee0-41a8-9023-98a08a3ad4c1 10 | ms.tgt_pltfrm: macos 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | # Get Started with macOS extensions 17 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 18 | > [!div class="op_single_selector"] 19 | > * [Android](android.md) 20 | > * [iOS](ios.md) 21 | > * [iOS Extensions](ios-extensions.md) 22 | > * [React Native](react-native.md) 23 | > * [MAUI/Xamarin](xamarin.md) 24 | > * [UWP](uwp.md) 25 | > * [WPF/WinForms](wpf-winforms.md) 26 | > * [Unity](unity.md) 27 | > * [macOS](macos.md) 28 | > * [macOS Extensions](macos-extensions.md) 29 | > * [tvOS](tvos.md) 30 | 31 | Extensions only support crash reporting. 32 | 33 | To learn how to add App Center SDK to your container app, refer to the documentation for [App Center macOS Getting Started](./macos.md). 34 | 35 | Let's get started with setting up App Center macOS SDK in your app extension to use App Center Crashes. 36 | 37 | ## 1. Prerequisites 38 | 39 | The following requirements must be met to use App Center SDK: 40 | 41 | * Your macOS project is set up in Xcode 13 or later on macOS version 10.14.4 or later. 42 | * You're targeting devices running on macOS 10.13 or later. 43 | * You're not using any other library that provides Crash Reporting functionality. 44 | 45 | ## 2. Create your app in the App Center Portal to obtain the App Secret 46 | 47 | If you've already created your app in the App Center portal, you can skip this step. 48 | 49 | 1. Head over to [appcenter.ms](https://appcenter.ms). 50 | 2. Sign up or log in and hit the blue button on the top right corner of the portal that says **Add new** and select **Add new app** from the dropdown menu. 51 | 3. Enter a name and an optional description for your app. 52 | 4. Select **macOS** as the OS and **Objective-C/Swift** as a platform. 53 | 5. Hit the button at the bottom right that says **Add new app**. 54 | 55 | Once you've created an app, you can obtain its **App Secret** on the **Settings** page on the App Center Portal. At the top right hand corner of the **Settings** page, click on the **triple vertical dots** and select `Copy app secret` to get your App Secret. 56 | 57 | > [!NOTE] 58 | > Using an existing App Secret from another macOS project has side effects. App Center doesn't support filtering by project on the same App Center application. For instance listing crashes for a particular version will list all the crashes from both projects for this version without distinction. It can be confusing. 59 | 60 | > [!NOTE] 61 | > In the `4.0.0` version of App Center breaking changes were introduced. Follow the [Migrate to App Center SDK 4.0.0 and higher](../getting-started/migration/apple-sdk-update.md) section to migrate App Center from previous versions. 62 | 63 | [!INCLUDE [ios macos extension](includes/ios-macos-extensions.md)] 64 | 65 | Look at the documentation for [App Center Crashes](~/sdk/crashes/macos.md) to learn how to customize your app extension and use more advanced functionalities. 66 | -------------------------------------------------------------------------------- /docs/sdk/includes/android-see-async.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.topic: include 5 | ms.date: 12/02/2019 6 | --- 7 | 8 | This API is asynchronous, you can read more about that in our [App Center Asynchronous APIs](../other-apis/android.md) guide. 9 | -------------------------------------------------------------------------------- /docs/sdk/includes/app-secret-secure.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.topic: include 5 | ms.date: 09/07/2021 6 | --- 7 | 8 | The `app_secret` is an identifier of your app, it's required to know which app the traffic applies to and it can not be used to retrieve or edit existing data. If your `app_secret` is exposed, the biggest risk is sending bad data to your app, but it won't have an effect on the security of the data. 9 | 10 | To retrieve any sensitive data, you'd need to provide an app/user [token](../../api-docs/index.md), which is generated on the client’s side. There's no way to make data on the client's side completely secure. 11 | 12 | You can improve your app's security by using an environment variable to inject the app secret into your code. That way, the secret isn't visible in your code. 13 | -------------------------------------------------------------------------------- /docs/sdk/includes/app-secret-warning.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: v-adorofeev 3 | ms.author: v-adorofeev 4 | ms.topic: include 5 | ms.date: 02/17/2022 6 | --- 7 | 8 | > [!WARNING] 9 | > It's not recommended to embed your App Secret in source code. 10 | 11 | -------------------------------------------------------------------------------- /docs/sdk/includes/unity-see-async.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.topic: include 5 | ms.date: 12/02/2019 6 | --- 7 | 8 | This API is asynchronous, you can read more about in our [App Center Asynchronous APIs](../other-apis/unity.md) guide. -------------------------------------------------------------------------------- /docs/sdk/limitations.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: SDK Limitations & Known Issues 3 | description: Limitations and known issues with the App Center SDK 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 07/29/2021 8 | ms.topic: article 9 | ms.assetid: e1e427f3-6949-4266-b1cd-13da703fc132 10 | --- 11 | 12 | # SDK Limitations & Known Issues 13 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 14 | 15 | ## React Native 16 | 17 | 1. The React Native SDK doesn't support In-App-Updates through Distribution. Instead, use the [CodePush service](https://microsoft.github.io/code-push/) to distribute application updates without creating a new build. 18 | 19 | ## Xamarin 20 | 21 | 1. Crashes caused by `StackOverflowException` aren't reported. This is a limitation of the Xamarin runtime. 22 | 2. You can't use most AppCenter SDK APIs in a Xamarin Forms application constructor if you want to use the previewer. The Xamarin previewer doesn't support native code. 23 | 3. You can't deploy an application using the AppCenter SDK to the Xamarin Live Player as the SDK contains native code. 24 | 25 | ## UWP, WinUI, WPF, and WinForms 26 | 27 | 1. Crashes caused by `StackOverflowException` aren't reported. This is a limitation of the .NET runtime. 28 | 2. Only crashes caused by .NET exceptions are reported, not C/C++ crashes. 29 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/includes/android-async.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.topic: include 5 | ms.date: 09/13/2021 6 | ms.tgt_pltfrm: android 7 | dev_langs: 8 | - java 9 | - kotlin 10 | --- 11 | 12 | Asynchronous APIs return a `AppCenterFuture` object instead of returning the result directly. 13 | 14 | You can either call `get()` on the future object to synchronously wait for the result or provide a callback like this, filling in the respective return types when calling the API: 15 | 16 | ```java 17 | AppCenterFuture<{ReturnType}> future = {AnyAsyncApi}(); 18 | future.thenAccept(new AppCenterConsumer<{ReturnType}>() { 19 | 20 | @Override 21 | public void accept({ReturnType} result) { 22 | 23 | // do something with result, this is called back in UI thread. 24 | } 25 | }); 26 | ``` 27 | ```kotlin 28 | val future = {AnyAsyncApi}() 29 | future.thenAccept(object : AppCenterConsumer<{ReturnType}> { 30 | override fun accept(t: {ReturnType}?) { 31 | // do something with result, this is called back in UI thread. 32 | } 33 | }) 34 | ``` 35 | 36 | To avoid blocking UI thread that causes slowing down your application, consider using `thenAccept` with the callback all the time. 37 | 38 | On a worker thread you can call `{AnyAsyncApi}().get()`. 39 | 40 | Callback example: 41 | 42 | ```java 43 | AppCenter.isEnabled().thenAccept(new AppCenterConsumer() { 44 | 45 | @Override 46 | public void accept(Boolean enabled) { 47 | Log.d("MyApp", "AppCenter.isEnabled=" + enabled); 48 | } 49 | }); 50 | ``` 51 | ```kotlin 52 | AppCenter.isEnabled().thenAccept { enabled -> 53 | Log.d("MyApp", "AppCenter.isEnabled=$enabled") 54 | } 55 | ``` 56 | 57 | Synchronous example: 58 | 59 | ```java 60 | boolean enabled = AppCenter.isEnabled().get(); 61 | ``` 62 | ```kotlin 63 | val enabled = AppCenter.isEnabled().get() 64 | ``` -------------------------------------------------------------------------------- /docs/sdk/other-apis/includes/unity-async.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: lucen-ms 3 | ms.author: lucen 4 | ms.topic: include 5 | ms.date: 09/13/2021 6 | ms.tgt_pltfrm: unity 7 | --- 8 | 9 | Asynchronous APIs return a `AppCenterTask` object instead of returning the result directly, and return immediately instead of waiting for the action to finish. 10 | 11 | There are three ways to interact with these methods. 12 | 13 | ### Method 1: ContinueWith 14 | To perform an action after the `AppCenterTask`'s activity has completed, add a callback using the `ContinueWith` method. 15 | 16 | Example: 17 | ```csharp 18 | AppCenter.IsEnabledAsync().ContinueWith(task => 19 | { 20 | // Do something with task.Result 21 | }); 22 | ``` 23 | 24 | In situations where the method has an actual return value, it will return `AppCenterTask<{Return Type}>` (as in the example above). In these situations, the task parameter in the callback will have a `Result` property that you can access. 25 | 26 | ### Method 2: Built-in language features 27 | If you're writing code that has access to .NET 4.6 or above, then `AppCenterTask` can be `await`ed in an asynchronous context. 28 | 29 | Example: 30 | ```csharp 31 | bool isEnabled = await AppCenter.IsEnabledAsync(); 32 | ``` 33 | 34 | ### Method 3: Coroutines 35 | `AppCenterTask`s are also suitable for use in coroutines. 36 | 37 | Example: 38 | ```csharp 39 | void SomeMethod() 40 | { 41 | StartCoroutine(IsEnabledCoroutine()); 42 | } 43 | 44 | IEnumerator IsEnabledCoroutine() 45 | { 46 | var isEnabled = AppCenter.IsEnabledAsync(); 47 | yield return isEnabled; 48 | 49 | // do something with the isEnabled 50 | } 51 | ``` 52 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/includes/user-id.md: -------------------------------------------------------------------------------- 1 | After setting a user ID, you can use App Center's search feature to search for specific crash reports for the ID. Learn more in App Center's [search documentation](~/diagnostics/search.md). 2 | 3 | > [!NOTE] 4 | > The value for the user ID is limited to 256 characters. 5 | > It will be shown with your crash reports but not used for aggregation or counts of affected users. 6 | > In case you set user ID multiple times, only the last user ID will be used. 7 | > You need to set the user ID yourself before each application launch, because this value isn't stored by the SDK between launches. 8 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/ios.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Other iOS APIs 3 | description: Other APIs in the App Center SDK for iOS 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/19/2020 8 | ms.topic: article 9 | ms.assetid: f79abed4-6e50-4d1c-aa1e-0b78b764908d 10 | ms.tgt_pltfrm: ios 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | # Other iOS APIs 17 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 18 | 19 | [!INCLUDE [apple](includes/apple.md)] 20 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/macos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Other macOS APIs 3 | description: Other APIs in the App Center SDK for macOS 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/19/2020 8 | ms.topic: article 9 | ms.assetid: bdd0187e-55dd-11e7-907b-a6006ad3dba0 10 | ms.tgt_pltfrm: macos 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | # Other macOS APIs 17 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 18 | 19 | [!INCLUDE [apple](includes/apple.md)] 20 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/tvos.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Other tvOS APIs 3 | description: Other APIs in the App Center SDK for tvOS 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 06/19/2020 8 | ms.topic: article 9 | ms.assetid: c13d5c6c-b3ab-4aa0-9f0c-8a96c3e742af 10 | ms.tgt_pltfrm: tvos 11 | dev_langs: 12 | - swift 13 | - objc 14 | --- 15 | 16 | # Other tvOS APIs 17 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 18 | 19 | [!INCLUDE [apple](includes/apple.md)] 20 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/uwp.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Other UWP and WinUI APIs 3 | description: Other APIs in the App Center SDK for UWP and WinUI 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 09/27/2021 8 | ms.topic: article 9 | ms.assetid: 47b5da40-70fd-468b-a9a9-05a266b7fa7b 10 | ms.tgt_pltfrm: uwp 11 | --- 12 | 13 | # Other UWP and WinUI APIs 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 15 | 16 | > [!div class="op_single_selector"] 17 | > * [Android](android.md) 18 | > * [iOS](ios.md) 19 | > * [React Native](react-native.md) 20 | > * [MAUI/Xamarin](xamarin.md) 21 | > * [UWP](uwp.md) 22 | > * [WPF/WinForms](wpf-winforms.md) 23 | > * [Unity](unity.md) 24 | > * [macOS](macos.md) 25 | > * [tvOS](tvos.md) 26 | 27 | [!INCLUDE [windows](includes/windows.md)] 28 | -------------------------------------------------------------------------------- /docs/sdk/other-apis/wpf-winforms.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Other WPF and WinForms APIs 3 | description: Other APIs in the App Center SDK for WPF and WinForms 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 11/23/2020 8 | ms.topic: article 9 | ms.assetid: 3c917c07-a32f-4c5d-85d1-844c8d935c0c 10 | ms.tgt_pltfrm: wpf-winforms 11 | --- 12 | 13 | # Other WPF and WinForms APIs 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 15 | 16 | > [!div class="op_single_selector"] 17 | > * [Android](android.md) 18 | > * [iOS](ios.md) 19 | > * [React Native](react-native.md) 20 | > * [MAUI/Xamarin](xamarin.md) 21 | > * [UWP](uwp.md) 22 | > * [WPF/WinForms](wpf-winforms.md) 23 | > * [Unity](unity.md) 24 | > * [macOS](macos.md) 25 | > * [tvOS](tvos.md) 26 | 27 | [!INCLUDE [windows](includes/windows.md)] 28 | 29 | ## Other APIs 30 | 31 | The .NET NuGet package is shared with Xamarin and UWP, which have more functionalities. 32 | All the APIs that aren't documented for WPF and WinForms in this page will return `null` or `false` and won't do anything on WPF and WinForms. 33 | The other APIs are visible so that you can use them in a portable library (such as when using the SDK in a Xamarin.Forms application that contains a UWP project), but those extra APIs aren't implemented on WPF and WinForms. 34 | -------------------------------------------------------------------------------- /docs/sdk/troubleshooting/uwp.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: UWP, WinUI, WPF, and WinForms SDK Troubleshooting 3 | description: Troubleshooting the App Center SDK for UWP 4 | keywords: sdk 5 | author: lucen-ms 6 | ms.author: lucen 7 | ms.date: 01/25/2021 8 | ms.topic: article 9 | ms.assetid: 77daff4a-81f7-480d-8582-ea4159c4bd40 10 | ms.tgt_pltfrm: uwp 11 | --- 12 | 13 | # UWP, WinUI, WPF, and WinForms SDK Troubleshooting 14 | [!INCLUDE [Retirement announcement for App Center](~/includes/retirement.md)] 15 | 16 | > [!div class="op_single_selector"] 17 | > * [Android](android.md) 18 | > * [iOS](ios.md) 19 | > * [macOS](macos.md) 20 | > * [tvOS](tvOS.md) 21 | > * [React Native](react-native.md) 22 | > * [Unity](unity.md) 23 | > * [Windows](uwp.md) 24 | > * [MAUI/Xamarin](xamarin.md) 25 | 26 | ## Analytics data doesn't show up in the portal 27 | 28 | 1. Make sure you've integrated the SDK modules correctly. 29 | 2. Make sure correct App Secret is included along with the `Start()` method call. You can copy the exact `Start()` code by opening the app in the portal and navigating to Getting Started page. 30 | 3. In the console, look for an Assert log with the message - "App Center SDK configured successfully". This log verifies that the SDK is configured successfully and your logs will be forwarded. 31 | 4. If you want to see the logs that get sent to the backend, change the log level to **Verbose** in your application and the SDK will print logs in the console. Call the API below before you start the SDK. 32 | 33 | ```csharp 34 | AppCenter.LogLevel = LogLevel.Verbose; 35 | ``` 36 | 37 | 5. Make sure your device is online. 38 | 6. At times, logs might take few minutes to surface in the portal. Wait for some time if that’s the case. 39 | 7. To check if App Center backend received your data, go to the Log flow section in Analytics service. Your events should appear once it's been sent. 40 | 41 | ## Use App Center in the background tasks 42 | The App Center SDK doesn't support sending logs from a background task. It happens due to the process of background task can terminate unexpectedly and doesn't wait for the finnishing job of async tasks. Read more about [background tasks](/windows/uwp/launch-resume/support-your-app-with-background-tasks). 43 | 44 | ## Protect the App Center secret value 45 | 46 | [!INCLUDE [app secret secure](../includes/app-secret-secure.md)] 47 | -------------------------------------------------------------------------------- /redirectionHelper.sh: -------------------------------------------------------------------------------- 1 | # Old path in repo (product/path-to/article.md) 2 | sourcePaths=() 3 | sourcePaths+=(\ 4 | #example 5 | #test-cloud/supported-frameworks.md 6 | 7 | ) 8 | 9 | # Target path on website (product/path-to/article) 10 | redirectUrls=() 11 | redirectUrls+=(\ 12 | #example 13 | #test-cloud/frameworks/ 14 | ) 15 | 16 | # Construct Redirects 17 | for ((i=0; i<${#sourcePaths[@]}; i++)); 18 | do 19 | echo \{ 20 | echo \"source_path\": \"docs/${sourcePaths[$i]}\", 21 | echo \"redirect_url\": \"/appcenter/${redirectUrls[$i]}\" 22 | echo \}, 23 | done -------------------------------------------------------------------------------- /styleguide/images/alerts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/styleguide/images/alerts.png -------------------------------------------------------------------------------- /styleguide/images/responsivedesign.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/styleguide/images/responsivedesign.gif -------------------------------------------------------------------------------- /upgrade: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/MicrosoftDocs/appcenter-docs/253e88b4d4d7b1b1a1689efb1bb29b911f12bdc0/upgrade --------------------------------------------------------------------------------