Начало работы с MAUI и Xamarin

Важно!

Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.

Узнайте больше о сроках поддержки и альтернативных вариантах.

Пакет SDK центра приложений использует модульную архитектуру, поэтому вы можете использовать любую или все службы.

Давайте приступим к настройке пакета SDK центра приложений для .NET в приложении для использования аналитики Центра приложений и сбоев центра приложений. Чтобы добавить распространение Центра приложений в приложение, ознакомьтесь с документацией по распространению в Центре приложений.

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)

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 и desktop не имеют параметра Xamarin).

Для классических приложений Windows и macOS необходимо настроить проект на совместимость с платформой Xamarin.Forms .

2. Создайте приложение на портале Центра приложений, чтобы получить секрет приложения

Если вы уже создали приложение на портале Центра приложений, этот шаг можно пропустить.

  1. Перейдите к appcenter.ms.
  2. Зарегистрируйтесь или войдите в систему и нажмите синюю кнопку в правом верхнем углу портала с надписью Добавить и выберите Добавить новое приложение в раскрывающемся меню.
  3. Введите имя и необязательное описание приложения.
  4. Выберите соответствующую ОС и платформу в зависимости от проекта, как описано выше.
  5. Нажмите кнопку в правом нижнем углу с надписью Добавить новое приложение.

После создания приложения его секрет можно получить на странице Параметры на портале Центра приложений. В правом верхнем углу страницы Параметры щелкните тройную вертикальную точку и выберите 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. Для этого выберитеРасширенияVisual Studio>, выполните поиск по запросу 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));

Если вам нужно запустить службы Центра приложений отдельно, выполните следующие действия:

  1. Настройте или запустите его с помощью секрета приложения.
  2. Если код можно вызвать несколько раз, проверка, если Центр приложений уже настроен.
  3. Запустите необходимые службы без секрета приложения.
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));

Примечание

При использовании сбоев необходимо вызвать этот метод в потоке пользовательского интерфейса или main и избегать запуска фоновых задач до тех пор, пока метод не Start возвратит его. Причина в том, что любое исключение со пустой ссылкой, перехватывающееся из другого потока во время инициализации аварийного завершения, может вызвать сбой в машинном коде и игнорировать предложение catch. AppCenter.Start После возврата метода можно снова попытаться или перехватить исключения со пустой ссылкой. Дополнительные сведения о причине этой проблемы с временем см. в статье Сигналы и сторонние репортеры о сбоях .

Предупреждение

Не рекомендуется внедрять секрет приложения в исходный код.

Важно!

Фигурные скобки показывают, где следует разместить фактические секреты приложения, не размещайте фигурные скобки в вызове Start .

Примечание

В приложении iOS невозможно иметь несколько активных пакетов SDK для отчетов о сбоях. Отключите функцию отчетов о сбоях других пакетов SDK, чтобы центр приложений смог перехватывать сбои.

4.3. Замените заполнитель секретом приложения

Обязательно замените {Your App Secret} текст фактическим значением для приложения. Секрет приложения можно найти на странице начало работы или на странице параметров на портале Центра приложений.

Страница начало работы содержит приведенный выше пример кода с секретом приложения. Вы можете скопировать и вставить весь пример.

В приведенном выше примере показано, как использовать метод и включить аналитику Start() Центра приложений и сбои Центра приложений.

Если вы не хотите использовать одну из двух служб, удалите соответствующий параметр из вызова метода выше.

Если вы явно не укажет каждый модуль в качестве параметров в методе start, вы не сможете использовать эту службу Центра приложений. Кроме того, Start() API можно использовать только один раз в жизненном цикле приложения. Все остальные вызовы будут записывать в консоль предупреждение, и будут доступны только модули, включенные в первый вызов.

Например, если вы хотите подключиться к Аналитике 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) или ниже.

  1. Создайте файлappcenter_backup_rule.xml в папке Resources/xml .
  1. Откройте файл AndroidManifest.xml проекта. android:fullBackupContent Добавьте атрибут в <application> элемент . Он должен указывать на файл ресурсовappcenter_backup_rule.xml .
android:fullBackupContent="@xml/appcenter_backup_rule"
  1. Добавьте следующие правила резервного копирования в файл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) или выше.

  1. Создайте файлappcenter_backup_rule.xml в папке Resources/xml .
  1. Откройте файл AndroidManifest.xml проекта. android:dataExtractionRules Добавьте атрибут в <application> элемент . Он должен указывать на файл ресурсовappcenter_backup_rule.xml .
android:dataExtractionRules="@xml/appcenter_backup_rule"
  1. Добавьте следующие правила резервного копирования в файл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>