Руководство по миграции на версию 2.0.0
При миграции приложения с YandexMobileMetricaPush
на AppMetricaPush
будут сохранены основные идентификаторы и данные, то есть процесс перехода на новую версию не должен вызвать проблем и аномалий в отчетах.
Для миграции на новую версию выполните следующие шаги:
- Обновите AppMetrica SDK по инструкции.
- Замените зависимости. Необходимые изменения указаны в разделе по переименованию зависимостей.
- Убедитесь, что вы не используете 2 версии AppMetrica Push SDK одновременно.
- Импортируйте зависимости в коде. Необходимые изменения указаны в разделе про импортирование зависимостей.
- В коде проекта замените те классы и методы, которые были просто переименованы. Необходимые изменения указаны в разделе по переименованию API.
- При возникновении вопросов напишите в поддержку.
Переименованные зависимости
pod 'YandexMobileMetricaPush', '~> 1.3.0'
Замените на:
pod 'AppMetricaPush', '~> 2.0.0' # Основной модуль для работы с Push SDK, обязателен для подключения
pod 'AppMetricaPushLazy', '~> 2.0.0' # Дополнительный модуль для Lazy пушей
Если используется Package.swift манифест
-
Удалите из файла
Package.swift
в вашем проекте зависимость.package
сmetrica-push-sdk-ios
, а также все указания на зависимости в разделеtargets:
внутри вашего проекта. -
Вставьте следующий код для добавления новой зависимости от
push-sdk-ios
:dependencies: [ .package( url: "https://github.com/appmetrica/push-sdk-ios", from: "2.0.0" ) ],
-
Добавьте необходимые модули к таргетам вашего проекта.
Модули AppMetrica Push SDK, которые вы можете подключить в зависимости от потребностей вашего проекта:
AppMetricaPush
— обязательный основной модуль Push SDK. Должен быть подключен для работы.AppMetricaPushLazy
— дополнительный модуль для Lazy пушей.
.target( name: "MyTargetName", dependencies: [ .product(name: "AppMetricaPush", package: "push-sdk-ios"), // .product(name: "AppMetricaPushLazy", package: "push-sdk-ios"), // Этот модуль отлючен ] ),
Одновременное использование двух версий AppMetrica Push SDK
Переименованы группа и названия основных артефактов, поэтому в одном приложении могут использоваться сразу две версии AppMetrica Push SDK: AppMetrica Push версий 1.3.0 и ниже (YandexMobileMetricaPush
) и версий 2.0.0 и выше (AppMetricaPush
). Такая ситуация нежелательна из-за двойной обработки пуш-уведомлений и необходимости реализовывать свой UINotificationCenterDelegate
для вызова обработчиков из разных версий AppMetrica Push SDK.
Как убедиться, что не используется YandexMobileMetricaPush
Откройте файл Podfile.lock
и выполните поиск YandexMobileMetricaPush
.
Так же по блоку PODS
в файле Podfile.lock
можно понять какая зависимость ссылается на YandexMobileMetricaPush
.
PODS:
...
FizzLibarry (10.0.0):
- BuzzLibrary (= 11.0.0)
- YandexMobileMetricaPush (< 2.0.0, >= 1.3.0)
...
Если зависимости установлены через Xcode
Откройте проект в Xcode. Убедитесь, что в Package Dependencies
нет YandexMobileMetricaPush
.
Если используется Package.swift манифест
Если ваш проект использует Package.swift манифест для управления зависимостями, выполните в терминале команду swift package show-dependencies
в директории вашего проекта. Это выведет список всех зависимостей проекта, включая транзитивные.
.
└── fizz-library<https://github.com/appmetrica/fizz@10.0.0>
├──buzz-library<https://github.com/appmetrica/buzz@28.0.0>
├── metrica-sdk-push-ios<https://github.com/yandexmobile/metrica-sdk-push-ios@1.3.0>
Также можно проверить файл Package.resolved
на наличие зависимости YandexMobileMetricaPush
.
{
"object": {
"pins": [
//...
{
"package": "YandexMobileMetricaPush",
"repositoryURL": "https://github.com/yandexmobile/metrica-sdk-push-ios",
"state": {
"branch": null,
"revision": "37012eb6d43ad7d9fc32801855f0eb62a53deec7",
"version": "1.3.0"
}
},
//...
]
},
// ...
}
Импортирование зависимостей
import YandexMobileMetricaPush
Замените на:
import AppMetricaPush
import AppMetricaPushLazy // дополнительный модуль для Lazy пушей
#import <YandexMobileMetricaPush/YandexMobileMetricaPush.h>
Замените на:
#import <AppMetricaPush/AppMetricaPush.h>
#import <AppMetricaPushLazy/AppMetricaPushLazy.h> // дополнительный модуль для Lazy пушей
Переименование API
Префикс YMP
удален.
- Интерфейс
YMPYandexMetricaPush
переименован вAppMetricaPush
.- Метод
userNotificationCenterDelegate
удален. Используйте свойствоuserNotificationCenterDelegate
. - Метод
userNotificationCenterHandler
удален. Используйте свойствоuserNotificationCenterHandler
.
- Метод
- Протокол
YMPUserNotificationCenterDelegate
переименован вUserNotificationCenterDelegate
. - Протокол
YMPUserNotificationCenterHandling
переименован вUserNotificationCenterHandling
. - Перечисление
YMPYandexMetricaPushEnvironment
переименовано вAppMetricaPushEnvironment
.
Префикс YMP
сменился на AMP
.
- Интерфейс
YMPYandexMetricaPush
переименован вAMPAppMetricaPush
.- Метод класса
userNotificationCenterDelegate
переименован в свойство классаuserNotificationCenterDelegate
. - Метод класса
userNotificationCenterHandler
переименован в свойства классаuserNotificationCenterHandler
.
- Метод класса
- Протокол
YMPUserNotificationCenterDelegate
переименован вAMPUserNotificationCenterDelegate
. - Протокол
YMPUserNotificationCenterHandling
переименован вAMPUserNotificationCenterHandling
. - Перечисление
YMPYandexMetricaPushEnvironment
переименовано вAMPAppMetricaPushEnvironment
.