Миграция из HockeySDK в пакет SDK центра приложений для iOS

Важно!

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

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

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

1. Обновление библиотек

1.1 Удаление старого HockeySDK

Вручную

Если вы добавили пакет SDK вручную, выполните следующие действия.

  1. Удалите HockeySDK.embeddedframework ссылку из проекта XCode. Нажмите кнопку Удалить ссылку и не нажимайте кнопку Переместить в корзину .

  2. Откройте параметры проекта и на вкладке Параметры сборки в разделе Пути поиска заголовков / Пути поиска платформы удалите расположения для файлов заголовков, связанных с HockeySDK.

  3. Откройте параметры проекта и на вкладке Этапы сборки в разделе Связывание двоичного файла с библиотеками удалите записи зависимостей, связанные с HockeySDK.

  4. Удаление HockeySDK.embeddedframework из файловой системы.

Podfile

Если вы добавили пакет SDK с помощью CocoaPods, удалите pod "HockeySDK" строку из podfile и выполните команду pod install.

Carthage

  1. Удалите ссылки HockeySDK из Cartfile. Удаление Cartfile.Resolved из файловой системы.

  2. Удалите HockeySDK.framework и HockeySDK.framework.dSYM из проекта XCode и нажмите кнопку Переместить в корзину .

  3. Откройте вкладку Этапы сборки и найдите раздел Запуск скрипта . Удалите HockeyApp из input.xcfilelist и output.xcfilelist.

1.2. Добавление нового пакета SDK центра приложений

Пакет SDK центра приложений поддерживает интеграцию с помощью Cocoapods, Carthage, диспетчера пакетов Swift и с помощью платформ в проекте Xcode. Подробные инструкции по интеграции пакета SDK центра приложений см. в документации по пакету 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 в коде приложения

  1. Замените следующие импорты в классе AppDelegate .

    Перед следующей операцией.

    @import HockeySDK;
    
    import HockeySDK
    

    После следующих операций.

    @import AppCenter;
    @import AppCenterAnalytics;
    @import AppCenterCrashes;
    @import AppCenterDistribute;
    
    import AppCenter
    import AppCenterAnalytics
    import AppCenterCrashes
    import AppCenterDistribute
    
  2. Замена кода регистрации

    Найдите метод и замените didFinishLaunchingWithOptions вхождения кода HockeyApp.

    Перед следующей операцией.

    [[BITHockeyManager sharedHockeyManager] configureWithIdentifier:@"APP_IDENTIFIER"];
    [[BITHockeyManager sharedHockeyManager] startManager];
    [[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation];
    
    BITHockeyManager.shared().configure(withIdentifier: "APP_IDENTIFIER")
    BITHockeyManager.shared().start()
    BITHockeyManager.shared().authenticator.authenticateInstallation()
    

    После следующих операций.

    [MSACAppCenter start:@"{Your app secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class], [MSACDistribute class]]];
    
    AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self, Distribute.self])
    

    Примечание

    Пакет SDK центра приложений не имеет эквивалентов для [[BITHockeyManager sharedHockeyManager] configureWithBetaIdentifier:liveIdentifier:delegate].

  3. [Необязательно] Изменение info.plist проекта

    Если вы планируете использовать распространение, выполните указанные выше действия.

    • Добавьте новый ключ для URL types или CFBundleURLTypes в файл Info.plist (если XCode отображает файл Info.plist в качестве исходного кода).
    • Измените ключ первого дочернего элемента на URL Schemes или CFBundleURLSchemes.
    • Введите appcenter-${APP_SECRET} в качестве схемы URL-адреса и замените ${APP_SECRET} секретом приложения.

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

  4. Замените вызовы API HockeyApp во всем приложении. Подробные таблицы сопоставления API приведены ниже.

3. Сравнение служб и функций

Основные сведения

Компонент HockeyApp Центр приложений
Настройка уровня журнала [BITHockeyManager sharedHockeyManager].logLevel = BITLogLevelVerbose [MSACAppCenter setLogLevel:MSACLogLevelVerbose]
Определение установок [BITHockeyManager sharedHockeyManager].installString [MSACAppCenter installId]
Идентификация пользователей [BITHockeyManager sharedHockeyManager].userID [MSACAppCenter setUserId:@"your-user-id"]

Аналитика

HockeySDK включает сбор метрик по умолчанию. Пакет SDK центра приложений регистрирует службу аналитики только в том случае, если вы передаете Analytics класс в start метод .

Компонент HockeyApp Центр приложений
Автоматическое отслеживание сеансов Не удается отключить Документация (не может быть отключена)
Пользовательские события со свойствами Да [MSACAnalytics trackEvent:withProperties:]
Отключение службы во время выполнения [BITHockeyManager sharedHockeyManager].disableMetricsManager = YES [MSACAnalytics setEnabled:NO]

Сбои

HockeySDK включает отчеты о сбоях по умолчанию. Сбои будут немедленно отправлены на сервер при следующем запуске приложения. Пакет SDK центра приложений регистрирует службу аварийного завершения, только если вы передаете Crashes класс в start метод .

Компонент HockeyApp Центр приложений
Автоматическая отправка сбоев [[BITHockeyManager sharedHockeyManager].crashManager setCrashManagerStatus: BITCrashManagerStatusAutoSend] Документация (включена по умолчанию)
Создание тестового сбоя [[BITHockeyManager sharedHockeyManager].crashManager generateTestCrash] [MSACCrashes generateTestCrash]
Сведения о предыдущем сбое [[BITHockeyManager sharedHockeyManager].crashManager lastSessionCrashDetails] [MSACCrashes lastSessionCrashReport]
Обработка исключений Mach Отключено по умолчанию Документация (включена по умолчанию)
Присоединение дополнительных метаданных Да Документация (может быть вложена из делегата)
Диалоговое окно "Настройка пользователя" setAlertViewHandler Документация (не предоставляется по умолчанию)
Отключение службы во время выполнения [[BITHockeyManager sharedHockeyManager] setDisableCrashManager: YES] [MSACCrashes setEnabled:NO]

Распространение

Примечание

В отличие от HockeyApp, функция обновлений центра приложений в приложении будет работать ТОЛЬКО со сборками, распространяемыми с помощью службы распространения в Центре приложений. Распространение не будет работать при присоединении отладчика. Если приложение использует частную группу рассылки, после установки и открытия приложения в первый раз после добавления пакета SDK для распространения центра приложений откроется браузер для проверки подлинности пользователя и включения обновлений из приложения. Этот браузер также откроется, если вы задали частную дорожку обновления в приложении во время выполнения. Это одноразовый шаг, который не будет выполняться для последующих выпусков вашего приложения. Дополнительные сведения см. в документации по распространению в Центре приложений .

HockeySDK не включает обновления из приложения по умолчанию. Пакет SDK центра приложений регистрирует службу обновлений в приложении, только если вы передаете Distribute класс в start метод . Этот модуль включен по умолчанию, в отличие от HockeySDK.

Компонент HockeyApp Центр приложений
Ограниченные обновления в приложении [[BITHockeyManager sharedHockeyManager].authenticator authenticateInstallation] MSACDistribute.updateTrack
Отключение службы во время выполнения [[BITHockeyManager sharedHockeyManager] setDisableUpdateManager: YES] [MSACDistribute setEnabled:NO]
Настройка диалогового окна обновления shouldDisplayUpdateAlertForUpdateManager Документация