Переход из HockeySDK в пакет SDK Xamarin для Центра приложений
Важно!
Прекращение поддержки Центра приложений Visual Studio запланировано на 31 марта 2025 г. Хотя вы можете продолжать использовать Центр приложений Visual Studio, пока он не будет полностью выведен из эксплуатации, существует несколько рекомендуемых вариантов, на которые вы можете рассмотреть возможность миграции.
Узнайте больше о сроках поддержки и альтернативных вариантах.
Следуйте этой документации, если вы хотите обновить приложение для использования пакета SDK центра приложений вместо HockeySDK.
1. Обновление библиотек
Замените пакет NuGet HockeySDK.Xamarin на пакеты Центра приложений во всех проектах в решении.
Visual Studio для Mac
- Откройте Visual Studio для Mac.
- Щелкните Файл>Открыть и выберите решение.
- В навигаторе решения щелкните правой кнопкой мыши раздел Пакеты и выберите Добавить пакеты NuGet....
- Удалите пакет HockeySDK.Xamarin .
- Найдите Центр приложений и выберите Аналитика Центра приложений, Сбои Центра приложений и Распространение в Центре приложений.
- Щелкните Добавить пакеты.
Visual Studio для Windows
- Откройте Visual Studio для Windows.
- Щелкните Файл>Открыть и выберите решение.
- В навигаторе решения щелкните правой кнопкой мыши Ссылки и выберите Управление пакетами NuGet.
- Удалите пакет HockeySDK.Xamarin .
- Выполните поиск по запросу Центр приложений и установите пакеты Microsoft.AppCenter.Analytics, Microsoft.AppCenter.Crashes и Microsoft.AppCenter.Distribute .
Консоль диспетчера пакетов
- Откройте консоль в Visual Studio. Для этого выберите Сервис>Консоль диспетчера>пакетов NuGet.
- Если вы работаете в Visual Studio для Mac, убедитесь, что установлены расширения управления пакетами NuGet. Для этого выберитеРасширенияVisual Studio>, выполните поиск по запросу NuGet и установите, если это необходимо.
- Введите в консоли следующую команду:
Uninstall-Package HockeySDK.Xamarin
Install-Package Microsoft.AppCenter.Analytics
Install-Package Microsoft.AppCenter.Crashes
Install-Package Microsoft.AppCenter.Distribute
Пакет SDK центра приложений разработан с модульным подходом— вы можете интегрировать только те службы, которые вас интересуют. Каждый модуль ПАКЕТА SDK необходимо добавить в качестве отдельной зависимости в этом разделе. См. эквивалентность в следующей таблице:
Класс HockeyApp | Модуль Центра приложений |
---|---|
MetricsManager |
Analytics |
CrashManager |
Crashes |
UpdateManager |
Distribute |
2. Обновление кода установки пакета SDK
2.1. Преобразование идентификатора приложения
Пакет SDK центра приложений использует идентификаторы приложений в формате GUID. Ваш идентификатор приложения HockeyApp может использоваться Центром приложений, но его необходимо преобразовать в другой формат. Чтобы преобразовать идентификатор, необходимо добавить четыре дефиса, чтобы получить представление 8-4-4-4-12.
До (HockeyApp): 00112233445566778899aabbccddeeff
После (Центр приложений): 00112233-4455-6677-8899-aabbccddeeff
2.2. Замена инициализации пакета SDK в коде приложения
Удалите старый регистрационный код HockeyApp.
Xamarin.Android — откройте MainActivity.cs проекта и удалите следующие строки:
using HockeyApp.Android; ... CrashManager.Register(this, "APP_IDENTIFIER"); MetricsManager.Register(Application, "APP_IDENTIFIER"); UpdateManager.Register(this, "APP_IDENTIFIER");
Удалите следующий атрибут уровня сборки в разделе Properties/AssemblyInfo.cs:
[assembly: MetaData ("net.hockeyapp.android.appIdentifier", Value="APP_IDENTIFIER")]
Xamarin.iOS — откройте AppDelegate.cs проекта и удалите следующие строки:
using HockeyApp.iOS; ... var manager = BITHockeyManager.SharedHockeyManager; manager.Configure("APP_IDENTIFIER"); manager.StartManager(); manager.Authenticator.AuthenticateInstallation();
Запуск пакета SDK центра приложений
- Код инициализации, упомянутый далее в этом разделе, требует добавления следующих строк под существующими
using
операторами:
using Microsoft.AppCenter; using Microsoft.AppCenter.Analytics; using Microsoft.AppCenter.Crashes; using Microsoft.AppCenter.Distribute;
Xamarin.Android:
Откройте файл MainActivity.cs проекта и добавьте
Start()
вызов в метод .OnCreate()
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Примечание
Если приложение имеет фоновые службы или несколько точек входа, таких как широковещательный приемник, экспортированные действия или поставщики содержимого, рекомендуется запустить
AppCenter
обратныйApplication.OnCreate
вызов.Xamarin.iOS:
Откройте файл проекта
AppDelegate.cs
и добавьтеStart()
вызов в метод .FinishedLaunching()
AppCenter.Start("{Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Примечание
При использовании аварийного завершения необходимо вызвать этот метод в потоке пользовательского интерфейса или main и избегать запуска фоновых задач до тех пор, пока метод не
Start
вернет результат. Причина заключается в том, что любое исключение пустой ссылки, перехватывающееся из другого потока во время инициализации аварийного завершения, может вызвать сбой в собственном коде и игнорировать предложение catch.AppCenter.Start
После возврата метода можно повторить попытку или перехват исключений со пустой ссылкой. Дополнительные сведения о причине этой проблемы со временем см. в статье Сигналы и сторонние репортеры о сбоях .Xamarin.Forms:
Чтобы использовать приложение Xamarin.Forms, предназначенное для платформ iOS, Android и UWP, необходимо создать три приложения на портале Центра приложений — по одному для каждой платформы. При создании трех приложений вы получите три секрета приложения — по одному для каждого. Откройте файл App.xaml.cs проекта (или класс, который наследуется от
Xamarin.Forms.Application
) в общем или переносимом проекте и добавьте приведенный ниже метод вOnStart()
метод .AppCenter.Start("ios={Your App Secret};android={Your App Secret}", typeof(Analytics), typeof(Crashes), typeof(Distribute));
Важно!
Фигурные скобки просто для того, чтобы задокументировать, что необходимо заменить это содержимое фактическими секретами приложения, а не вставляйте фигурные скобки
Start
в вызове.Примечание
Если вы используете пакет SDK HockeyApp для Android, обязательно инициализируйте пакет SDK HockeyApp ПОСЛЕ пакета SDK центра приложений. Для приложения iOS невозможно иметь в приложении несколько активных пакетов SDK для отчетов о сбоях. Отключите функцию отчетов о сбоях других пакетов SDK, чтобы центр приложений смог перехватывать сбои.
Примечание
Заметки из обоих предыдущих разделов об iOS и Android также относятся к Xamarin.Forms. Если эти замечания относятся к вашему приложению, может потребоваться инициализировать AppCenter в разных местах для каждой платформы.
- Код инициализации, упомянутый далее в этом разделе, требует добавления следующих строк под существующими
[Только для распространения iOS] Изменение файла Info.plist проекта
- Добавьте новый ключ для
URL types
илиCFBundleURLTypes
в файл Info.plist (если Xcode отображает info.plist в качестве исходного кода). - Измените ключ первого дочернего элемента на
URL Schemes
илиCFBundleURLSchemes
. - Введите
appcenter-${Your App Secret}
в качестве схемы URL-адреса и замените${Your App Secret}
секретом приложения.
Дополнительные сведения об этом см. в документации по распространению в Центре приложений.
- Добавьте новый ключ для
Замените все вызовы API HockeyApp в приложении. Подробные таблицы сопоставления API приведены ниже.
3. Сравнение служб и функций
Основные сведения
Компонент | HockeyApp | Центр приложений |
---|---|---|
Настройка уровня журнала | SharedHockeyManager.LogLevel (iOS) или HockeyLog.LogLevel (Android) |
AppCenter.LogLevel |
Определение установок | Только iOS | AppCenter.GetInstallIdAsync |
Идентификация пользователей | Только сбой | AppCenter.SetUserId |
Аналитика
Компонент | HockeyApp | Центр приложений |
---|---|---|
Автоматическое отслеживание сеансов | Да, можно отключить только в Android | Документация (не может быть отключена) |
Пользовательские события со свойствами | HockeyApp.MetricsManager.TrackEvent |
Analytics.TrackEvent |
Отключение службы во время выполнения | MetricsManager.DisableUserMetrics (Android) или SharedHockeyManager.DisableMetricsManager (iOS) |
Analytics.SetEnabledAsync |
Сбои
Компонент | HockeyApp | Центр приложений |
---|---|---|
Автоматическая отправка сбоев | Отключено по умолчанию | Документация (включена по умолчанию) |
Создание тестового сбоя | CrashManager.GenerateTestCrash (Только iOS) |
Crashes.GenerateTestCrash |
Присоединение дополнительных метаданных | Да | Документация (может быть присоединена из прослушивателя) |
Диалоговое окно "Настройка пользователя" | Да | Документация (не предоставляется по умолчанию) |
Получение сведений о состоянии отправки | Только Android | Документация |
Сведения о предыдущем сбое | CrashManager.GetLastCrashDetails (Android) или CrashManager.LastSessionCrashDetails (iOS) |
Crashes.GetLastSessionCrashReportAsync |
Отключение службы во время выполнения | SharedHockeyManager.DisableCrashManager (только для iOS) |
Crashes.SetEnabledAsync |
Распространение
Примечание
В отличие от HockeyApp, функция обновлений в приложении центра приложений работает только с сборками RELEASE (по умолчанию), которые распространяются с помощью службы распространения Центра приложений . Если приложение использует частную группу рассылки, после установки и открытия приложения в первый раз после добавления пакета SDK для распространения центра приложений откроется браузер для проверки подлинности пользователя и включения обновлений из приложения. Этот браузер также откроется, если вы задали частную дорожку обновления в приложении во время выполнения. Это однократный шаг, который не будет выполняться для последующих выпусков вашего приложения. Дополнительные сведения см. в документации по распространению в Центре приложений .
Компонент | HockeyApp | Центр приложений |
---|---|---|
Ограниченные обновления в приложении | LoginManager.VerifyLogin (Android) или Authenticator.AuthenticateInstallation (iOS) |
Distribute.UpdateTrack |
Отключение службы во время выполнения | UpdateManager.Unregister (Android) или SharedHockeyManager.DisableUpdateManager (iOS) |
Distribute.SetEnabledAsync |
Настройка диалогового окна обновления | Да | Distribute.ReleaseAvailable |
Служба обратной связи
Служба обратной связи не будет поддерживаться в Центре приложений. См . отзывы о HockeyApp.