Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Центр приложений Visual Studio был прекращен 31 марта 2025 г., за исключением функций аналитики и диагностики, которые будут поддерживаться до 30 июня 2026 г. Подробнее.
Пакет SDK для Центра приложений использует модульную архитектуру, чтобы использовать любую или все службы.
Давайте приступим к настройке пакета SDK для Центра приложений .NET в приложении для использования аналитики Центра приложений и сбоев в Центре приложений. Чтобы добавить App Center Distribute в ваше приложение, ознакомьтесь с документацией для App Center Distribute.
1. Предварительные требования
Прежде чем приступить к работе, убедитесь, что у вас есть следующие необходимые компоненты.
- Проект настроен в Visual Studio или Visual Studio для Mac.
- Вы нацелены на устройства, работающие под управлением iOS 11.0 или более поздней версии или Android 5.0 (уровень API 21) или более поздней версии.
- Вы не используете другой пакет SDK, предоставляющий функции отчетов о сбоях.
Поддерживаемые платформы:
- MAUI iOS
- MAUI Android
- MAUI Windows
- .NET 6.0 macOS
- Xamarin.Android
- Xamarin.iOS
- Xamarin.Mac
- Xamarin.Forms (приложения iOS, macOS Android, UWP и Windows Desktop)
1.1 MAUI
Замечание
В настоящее время на портале Центра приложений нет платформы MAUI . Используйте Xamarin для iOS и Android и UWP для Windows.
1.2 О Xamarin.Android
Создайте приложение на портале Центра приложений с Android в качестве ОС и Xamarin в качестве платформы.
1.3 О Xamarin.iOS
Создайте приложение на портале Центра приложений с iOS в качестве ОС и Xamarin в качестве платформы.
1.4 О Xamarin.Mac
Создайте приложение на портале Центра приложений с macOS в качестве ОС и Xamarin в качестве платформы.
Предупреждение
Существует известная проблема, которая предотвращает отправку приложения в App Store. Следуйте ходу выполнения на github.
1.5 О Xamarin.Forms (iOS, macOS, Android, UWP и Windows Desktop)
Создайте 5 приложений в Центре приложений — по одному для каждой ОС.
Вам нужно выбрать Xamarin в качестве платформы для приложений Android, iOS и macOS (приложения UWP и настольные приложения не имеют опции Xamarin).
Для классических приложений Windows и macOS необходимо настроить проект для совместимости с платформой Xamarin.Forms .
2. Создание приложения на портале Центра приложений для получения секрета приложения
Если вы уже создали приложение на портале Центра приложений, этот шаг можно пропустить.
- Перейдите к appcenter.ms.
- Зарегистрируйтесь или войдите и нажмите синюю кнопку в правом верхнем углу портала, где указано Добавить новое, и выберите Добавить новое приложение в раскрывающемся меню.
- Введите имя и необязательное описание приложения.
- Выберите соответствующую ОС и платформу в зависимости от проекта, как описано выше.
- Нажмите кнопку в правом нижнем углу, где говорится, как добавить новое приложение.
После создания приложения вы можете получить секрет приложения на странице "Параметры " на портале Центра приложений. В правом верхнем углу страницы "Параметры " щелкните тройную вертикальную точку и выберите Copy app secret
, чтобы получить секрет приложения.
3. Добавьте пакет SDK Центра приложений в решение
Пакет SDK центра приложений можно интегрировать с помощью Visual Studio или консоли диспетчера пакетов.
Замечание
Пакет SDK для Центра приложений использует сборки с строгими именами для совместимости с приложениями, использующими знак с строгим именем.
Visual Studio для Mac
- Откройте Visual Studio.
- Нажмите кнопку"Открыть>" и выберите решение.
- В навигаторе решения щелкните правой кнопкой мыши раздел "Пакеты " и выберите "Добавить пакеты NuGet...".
- Найдите Центр приложений и выберите "Аналитика Центраприложений" и "Сбои Центра приложений".
- Нажмите кнопку "Добавить пакеты".
Visual Studio для Windows
- Откройте Visual Studio.
- Нажмите кнопку"Открыть>" и выберите решение.
- В обозревателе решения щелкните правой кнопкой мыши Ссылки и выберите пункт «Управление пакетами NuGet».
- Найдите центр приложений и установите пакеты Microsoft.AppCenter.Analytics и Microsoft.AppCenter.Crashes .
Консоль диспетчера пакетов
- Откройте консоль в Visual Studio. Для этого выберите Инструменты>Диспетчер пакетов NuGet>Консоль диспетчера пакетов.
- Если вы работаете в Visual Studio для Mac, убедитесь, что вы установили расширения управления пакетами NuGet. Для этого выберитерасширения>, найдите NuGet и установите при необходимости.
- Введите следующую команду в консоли:
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Теперь, когда вы интегрировали пакет SDK в приложении, пришло время запустить пакет SDK и использовать службы Центра приложений.
Замечание
Если вы используете пакет SDK Центра приложений в переносимом проекте (например, Xamarin.Forms), необходимо установить пакеты в каждом из проектов: переносимых, Android и iOS. Для этого необходимо открыть каждый вложенный проект и выполнить соответствующие действия, описанные в разделах Visual Studio для Mac или Visual Studio для Windows .
4. Запустите пакет SDK
Чтобы использовать Центр приложений, необходимо принять участие в модулях, которые вы хотите использовать. По умолчанию модули не запускаются, и при запуске пакета SDK необходимо явно вызывать каждый из них.
4.1 Добавление инструкций using
Добавьте соответствующие пространства имен в следующие файлы:
-
MAUI и Xamarin.Forms -
App.xaml.cs
-
Xamarin.iOS и Xamarin.Mac -
AppDelegate.cs
-
Xamarin.Android -
MainActivity.cs
using Microsoft.AppCenter;
using Microsoft.AppCenter.Analytics;
using Microsoft.AppCenter.Crashes;
4.2 Добавление Start()
метода
4.2.1 MAUI и Xamarin.Forms
Необходимо создать разные приложения для каждой платформы на портале Центра приложений. Для каждого приложения у вас будет другой секрет приложения. Откройте файл App.xaml.cs проекта и добавьте следующую строку в конструктор (или в методе OnStart()
для Xamarin.Forms).
AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics), typeof(Crashes));
Если вам нужно запустить службы Центра приложений отдельно, необходимо:
- Настройте или запустите его с помощью секрета приложения.
- Если код можно вызывать несколько раз, проверьте, настроен ли центр приложений.
- Запустите необходимые службы без секрета приложения.
AppCenter.Configure("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}");
if (AppCenter.Configured)
{
AppCenter.Start(typeof(Analytics));
AppCenter.Start(typeof(Crashes));
}
4.2.2 Xamarin.Android
Замечание
Если вы используете пакет SDK HockeyApp для Android, обязательно инициализировать пакет SDK HockeyApp после пакета SDK Центра приложений.
Откройте файл MainActivity.cs проекта и добавьте Start()
вызов внутри OnCreate()
метода.
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Замечание
Если в вашем приложении есть фоновые службы или несколько точек входа, таких как приемник широковещательной трансляции, экспортированные активности или поставщики контента, рекомендуется вместо этого начать с вызова обратного метода AppCenter
в Application.OnCreate
.
4.2.3 Xamarin.iOS и Xamarin.Mac
Замечание
В приложении не может быть несколько активных пакетов SDK для отчетов о сбоях. Отключите функции отчетов о сбоях других пакетов SDK, чтобы убедиться, что Центр приложений может перехватывать сбои.
Откройте файл проекта AppDelegate.cs
и добавьте Start()
вызов в FinishedLaunching()
метод
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes));
Замечание
Если используется Crashes, этот метод следует вызвать в пользовательском интерфейсе и основном потоке, и не начинать запуск фоновых задач до тех пор, пока Start
метод не вернется.
Причина заключается в том, что любое исключение null-ссылки, пойманное из другого потока, в то время как Crashes инициализируется, может вызвать нативный сбой и игнорировать блок catch.
После того как метод AppCenter.Start
вернется, безопасно повторно попытаться поймать исключения нулевой ссылки.
Дополнительные сведения о причине этой проблемы с временем можно узнать в статье Сигналы и отчеты о сбоях сторонних разработчиков.
Предупреждение
Не рекомендуется внедрять секрет приложения в исходный код.
Это важно
Фигурные скобки показывают, где разместить настоящие секреты приложения, не вставляйте в вызов Start
фигурные скобки.
Замечание
Для приложения iOS невозможно иметь более одного активного SDK для отчетности о сбоях в вашем приложении. Отключите функции отчетов о сбоях других пакетов SDK, чтобы убедиться, что Центр приложений может перехватывать сбои.
4.3. Замените заполнитель секретом приложения
Обязательно замените {Your App Secret}
текст фактическим значением приложения. Секрет приложения можно найти на странице "Начало работы " или на странице "Параметры " на портале Центра приложений.
Страница "Начало работы" содержит приведенный выше пример кода с секретом приложения в нем, вы можете скопировать весь пример.
В приведенном Start()
выше примере показано, как использовать метод и включить аналитику Центра приложений и сбои Центра приложений.
Если вы не хотите использовать одну из двух служб, удалите соответствующий параметр из приведенного выше вызова метода.
Если вы явно не указываете каждый модуль в качестве параметров в методе запуска, вы не можете использовать эту службу Центра приложений. Кроме того, Start()
API можно использовать только один раз в жизненном цикле приложения. Все остальные вызовы записывают предупреждение в консоль, и будут доступны только модули, включенные в первый вызов.
Например, если вы хотите подключиться к App Center Analytics, необходимо изменить Start()
вызов следующим образом:
4.3.1 MAUI и Xamarin.Forms
AppCenter.Start("ios={Your App Secret};macos={Your App Secret};android={Your App Secret};uwp={Your App Secret};windowsdesktop={Your App Secret}", typeof(Analytics));
4.3.2 Xamarin Native
AppCenter.Start("{Your App Secret}", typeof(Analytics));
Отлично, вы все настроены для визуализации аналитических и аварийных данных на портале, который пакет SDK собирает автоматически.
Ознакомьтесь с документацией по Аналитике исбоям Центра приложений , чтобы узнать, как настроить и использовать более сложные функции обеих служб.
Чтобы узнать, как приступить к работе с обновлениями в приложении, ознакомьтесь с документацией по распространению в Центре приложений.
Замечание
Используя переносимые API из Xamarin Forms, вы увидите API-интерфейсы всех модулей, однако не все эти API поддерживаются на платформах UWP и Windows Desktop , и не выполняют никаких действий при работе в приложениях UWP и Windows Desktop . В частности, UWP и Windows Desktop не поддерживают следующий модуль: распространение. Любой метод с типом возвращаемого значения возвращал бы null
(для объектов), 0
(для чисел) или false
(для логических значений) в приложениях UWP и настольных приложениях Windows.
5. Правила резервного копирования (только для Android)
Замечание
Приложения, предназначенные для Android 6.0 (уровень API 23) или более поздней версии, автоматически включают автоматическое резервное копирование.
Замечание
Если у вас уже есть пользовательский файл с правилами резервного копирования, перейдите на третий шаг.
Если вы используете автоматическое резервное копирование, чтобы избежать получения неверных сведений об устройствах, выполните следующие действия.
5.1. Для Android 11 (уровень API 30) или ниже.
- Создайте файлappcenter_backup_rule.xml в папке Resources/xml .
- Откройте файл AndroidManifest.xml этого проекта. Добавьте атрибут
android:fullBackupContent
к элементу<application>
. Он должен указывать на файл ресурсов appcenter_backup_rule.xml .
android:fullBackupContent="@xml/appcenter_backup_rule"
- Добавьте следующие правила резервного копирования в файл appcenter_backup_rule.xml :
<full-backup-content xmlns:tools="http://schemas.android.com/tools">
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</full-backup-content>
5.2. Для Android 12 (уровень API 31) или более поздней версии.
- Создайте файлappcenter_backup_rule.xml в папке Resources/xml .
- Откройте файл AndroidManifest.xml этого проекта. Добавьте атрибут
android:dataExtractionRules
к элементу<application>
. Он должен указывать на файл ресурсов appcenter_backup_rule.xml .
android:dataExtractionRules="@xml/appcenter_backup_rule"
- Добавьте следующие правила резервного копирования в файл appcenter_backup_rule.xml :
<data-extraction-rules xmlns:tools="http://schemas.android.com/tools">
<cloud-backup>
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</cloud-backup>
<device-transfer>
<exclude domain="sharedpref" path="AppCenter.xml"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence"/>
<exclude domain="database" path="com.microsoft.appcenter.persistence-journal"/>
<exclude domain="file" path="error" tools:ignore="FullBackupContent"/>
<exclude domain="file" path="appcenter" tools:ignore="FullBackupContent"/>
</device-transfer>
</data-extraction-rules>