Руководство по миграции на версию 5.0.0
При миграции приложения с YandexMobileMetrica
на AppMetrica
будут сохранены основные идентификаторы и данные, то есть процесс перехода на новую версию не должен вызвать проблем и аномалий в отчетах.
Для миграции на новую версию выполните следующие шаги:
- Замените зависимости. Необходимые изменения указаны в разделе по переименованию зависимостей.
- Убедитесь, что вы не используете 2 версии AppMetrica SDK одновременно.
- Импортируйте зависимости в коде. Необходимые изменения указаны в разделе про импортирование зависимостей.
- В коде проекта замените те классы и методы, которые были просто переименованы. Необходимые изменения указаны в разделе по переименованию API.
- Перейдите на новый API для отправки ошибок, используя инструкцию.
- Код с остальными ошибками временно закомментируйте, чтобы проект можно было собрать.
- Исправьте закомментированный код, используя остальные пункты данной инструкции. При возникновении вопросов напишите в поддержку.
Переименованные зависимости
pod 'YandexMobileMetrica', '~> 4.0'
Замените на:
pod 'AppMetricaAnalytics', '~> 5.0.0'
AppMetrica SDK состоит из нескольких модулей. Это позволяет подключать только необходимый функционал. При подключении AppMetricaAnalytics
подключаются все модули. Для более детальной настройки обратитесь к разделу по интеграции.
Если зависимости установлены через Xcode
-
Удалите зависимость
metrika-sdk-ios
. -
В окне Xcode навигатора проектов (Project Navigator) выберите свой проект (если у вас используется Workspace). Затем в верхнем меню нажмите File и выберите Add Package Dependencies....
-
Укажите URL репозитория
https://github.com/appmetrica/appmetrica-sdk-ios
. -
Оставьте только нужные модули (чтобы выключить модуль, в
Add to Target
выберите значениеNone
):AppMetricaCore
— обязательный основной модуль SDK. Должен быть подключен для работы с AppMetrica.AppMetricaAdSupport
— модуль используется для сбора идентификаторов, включая IDFA.AppMetricaCrashes
— модуль предназначен для отлова крэшей и отправки ошибок.AppMetricaWebKit
— модуль позволяет осуществлять отправку событий из JavaScript кода в WebView.
Если используется Package.swift манифест
-
Удалите из файла
Package.swift
в вашем проекте зависимость.package
сYandexMobileMetrica
, а также все указания на зависимости в разделеtargets:
внутри вашего проекта. -
Вставьте следующий код для добавления новой зависимости от
appmetrica-sdk-ios
:dependencies: [ .package( name: "AppMetrica", url: "https://github.com/appmetrica/appmetrica-sdk-ios", .upToNextMinor(from: "5.0.0") ), ],
-
Добавьте необходимые модули к таргетам вашего проекта.
AppMetricaCore
— обязательный основной модуль SDK. Должен быть подключен для работы с AppMetrica.AppMetricaAdSupport
— модуль используется для сбора идентификаторов, включая IDFA.AppMetricaCrashes
— модуль предназначен для отлова крэшей и отправки ошибок.AppMetricaWebKit
— модуль позволяет осуществлять отправку событий из JavaScript кода в WebView.
.target( name: "MyTargetName", dependencies: [ .product(name: "AppMetricaCore", package: "AppMetrica"), .product(name: "AppMetricaCrashes", package: "AppMetrica"), .product(name: "AppMetricaWebKit", package: "AppMetrica"), // .product(name: "AppMetricaAdSupport", package: "AppMetrica"), // Этот модуль отлючен ] ),
Одновременное использование двух версий AppMetrica SDK
Переименованы группа и названия основных артефактов, поэтому в одном приложении могут использоваться сразу две версии AppMetrica SDK: AppMetrica версий 4 и ниже (YandexMobileMetrica
) и версий 5 и выше (AppMetrica
). Такая ситуация нежелательна и может возникнуть только в определенных условиях.
1. Среди зависимостей приложения прописаны зависимости сразу от двух разных версий AppMetrica SDK
Внимание
Категорически не рекомендуется одновременная работа в коде приложения с YandexMobileMetrica
и AppMetrica
с одним API key
. То есть нельзя одновременно активировать YandexMetrica
и AppMetrica
с одним API key
. Это не приведет к сбоям и крэшам в приложении, но вызовет искажение и нарушение статистики. При миграции на AppMetrica
проверьте, что среди зависимостей приложения нет зависимости от YandexMobileMetrica
.
2. Одна из зависимостей приложения транзитивно зависит от AppMetrica SDK
Если приложение и библиотеки используют разные API key
, данная ситуация является возможной, но нежелательной. Статистика должна собираться нормально, хотя допустимы небольшие отклонения. В этом случае возможно некоторое увеличение размера приложения, так как в составе приложения будут присутствовать два SDK, вместо одного.
Как убедиться, что не используется YandexMobileMetrica
Откройте файл Podfile.lock
и выполните поиск YandexMobileMetrica
.
Так же по блоку PODS
в файле Podfile.lock
можно понять какая зависимость ссылается на YandexMobileMetrica
.
PODS:
...
YandexMobileAds (6.4.0):
- DivKit (= 28.13.0)
- YandexMobileMetrica (< 5.0.0, >= 4.0.0)
...
Если зависимости установлены через Xcode
Откройте проект в Xcode. Убедитесь, что в Package Dependencies
нет YandexMobileMetrica
.
Если используется Package.swift манифест
Если ваш проект использует Package.swift манифест для управления зависимостями, выполните в терминале команду swift package show-dependencies
в директории вашего проекта. Это выведет список всех зависимостей проекта, включая транзитивные.
.
└── yandex-ads-sdk-ios<https://github.com/yandexmobile/yandex-ads-sdk-ios.git@6.4.0>
├── metrica-sdk-ios<https://github.com/yandexmobile/metrica-sdk-ios@4.5.2>
└── divkit-ios<https://github.com/divkit/divkit-ios@28.13.0>
└── vgsl<https://github.com/yandex/vgsl.git@2.4.1>
Также можно проверить файл Package.resolved
на наличие зависимости YandexMobileMetrica
.
{
"object": {
"pins": [
//...
{
"package": "YandexMobileMetrica",
"repositoryURL": "https://github.com/yandexmobile/metrica-sdk-ios",
"state": {
"branch": null,
"revision": "13d8b11181a33938ef42759d49466a621df5e7db",
"version": "4.5.2"
}
},
//...
]
},
// ...
}
Импортирование зависимостей
import YandexMobileMetrica
Замените на:
import AppMetricaCore
import AppMetricaCrashes // при необходимости работы с ошибками/крэшами
import AppMetricaWebKit // при необходимости настроить отправку событий из WebView
#import <YandexMobileMetrica/YandexMobileMetrica.h>
Замените на:
#import <AppMetricaCore/AppMetricaCore.h>
#import <AppMetricaCrashes/AppMetricaCrashes.h> // при необходимости работы с ошибками/крэшами
#import <AppMetricaWebKit/AppMetricaWebKit.h> // при необходимости настроить отправку событий из WebView
Переименование API
Префикс YMM
удален.
- Интерфейс
YMMYandexMetrica
переименован вAppMetrica
.- Метод
handleOpen(_:)
переименован вtrackOpeningURL(_:)
. - Метод
initWebViewReporting(_:onFailure:)
переименован вsetupWebViewReporting(with:onFailure:)
, смотрите подробнее в Отправка события из JavaScript-кода WebView. - Метод
libraryVersion()
удален, используйте свойствоlibraryVersion
. - Метод
report(adRevenue:onFailure:)
переименован вreportAdRevenue(_:onFailure)
. - Метод
report(eCommerce:onFailure:)
переименован вreportECommerce(_:onFailure:)
. - Метод
report(error:onFailure:)
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
report(error:options:onFailure:)
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
report(nserror:onFailure:)
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
report(nserror:options:onFailure:)
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
reportError(_:exception:onFailure:)
удален, смотрите инструкцию Работа с крэшами и ошибками. - Метод
reportEvent(_:onFailure:)
переименован вreportEvent(name:onFailure)
. - Метод
reportEvent(_:parameters:onFailure:)
переименован вreportEvent(name:parameters:onFailure)
. - Метод
reportReferralUrl(_:)
удален. - Метод
reporterForApiKey(_:)
переименован вreporter(for:)
. - Метод
requestAppMetricaDeviceID(withCompletionQueue:completionBlock:)
удален, используйтеrequestStartupIdentifiers(for:on:completion:)
. - Метод
setErrorEnvironmentValue(_:forKey:)
удален, используйтеAppMetricaCrashes.crashes().set(errorEnvironmentValue: value, forKey: key)
. - Метод
setLocation(_:)
удален, используйте свойствоcustomLocation
. - Метод
setLocationTracking(_:)
удален, используйте свойствоisLocationTrackingEnabled
. - Метод
setStatisticsSending(_:)
переименован вsetDataSendingEnabled(_:)
. - Метод
setUserProfileID(_:)
удален, используйте свойствоuserProfileID
.
- Метод
- Интерфейс
YMMYandexMetricaConfiguration
переименован вAppMetricaConfiguration
- Свойство
appForKids
удалено, смотрите инструкцию Использование SDK для детских приложений. - Свойство
crashReporting
удалено, смотрите инструкцию Работа с крэшами и ошибками. - Свойство
location
переименовано вcustomLocation
. - Свойство
logs
переименовано вareLogsEnabled
. - Свойство
statisticsSending
переименовано вdataSendingEnabled
.
- Свойство
- Интерфейс
YMMYandexMetricaPreloadInfo
переименован вAppMetricaPreloadInfo
.- Метод
setAdditional(_:forKey:)
переименован вsetAdditional(info:forKey:)
.
- Метод
Reporter
- Интерфейс
YMMMutableReporterConfiguration
переименован вMutableReporterConfiguration
.- Свойство
logs
переименовано вareLogsEnabled
. - Свойство
statisticsSending
переименовано вdataSendingEnabled
.
- Свойство
- Интерфейс
YMMPluginErrorDetails
переименован вPluginErrorDetails
. - Интерфейс
YMMReporterConfiguration
переименован вReporterConfiguration
.- Свойство
logs
переименовано вareLogsEnabled
. - Свойство
statisticsSending
переименовано вdataSendingEnabled
.
- Свойство
- Интерфейс
AppMetricaCrashesConfiguration
добавлен. - Интерфейс
YMMStackTraceElement
переименован вStackTraceElement
. - Интерфейс
YMMYandexMetricaPlugins
переименован вAppMetricaPlugins
.- Метод
getPluginExtension
переименован вpluginExtension
.
- Метод
- Интерфейс
AppMetricaCrashes
добавлен.- Метод
-clearErrorEnvironment:
добавлен. - Метод
-enableANRMonitoring:
добавлен. - Метод
-enableANRMonitoringWithWatchdogInterval:pingInterval:
добавлен. - Метод
-requestCrashReportingStateWithCompletionQueue:completionBlock:
добавлен. - Метод
-setErrorEnvironmentValue:forKey:
добавлен.
- Метод
- Протокол
YMMYandexMetricaPluginReporting
переименован вAppMetricaPluginReporting
.- Метод
getPluginExtension
переименован вpluginExtension
.
- Метод
- Протокол
YMMYandexMetricaReporting
переименован вAppMetricaReporting
.- Метод
report(adRevenue:onFailure:)
переименован вreportAdRevenue(_:onFailure)
. - Метод
report(eCommerce:onFailure:)
переименован вreportECommerce(_:onFailure:)
. - Метод
report(error:onFailure:)
перенесен в протоколAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
report(error:options:onFailure:)
перенесен в протоколAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
report(nserror:onFailure:)
перенесен в протоколAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
report(nserror:options:onFailure:)
перенесен в протоколAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
reportEvent(_:onFailure:)
переименован вreportEvent(name:onFailure)
. - Метод
reportEvent(_:parameters:onFailure:)
переименован вreportEvent(name:parameters:onFailure)
. - Метод
setStatisticsSending(_:)
переименован вsetDataSendingEnabled(_:)
. - Метод
setUserProfileID(_:)
удален, используйте свойствоuserProfileID
.
- Метод
- Константа
kYMMPlatformNative
переименована вPlatformNative
. - Константа
kYMMPlatformFlutter
переименована вPlatformFlutter
. - Константа
CrashReportingStateKey.enabledKey
добавлена с версии 5.4.0. - Константа
CrashReportingStateKey.crashedLastLaunchKey
добавлена с версии 5.4.0.
Атрибуты пользователя
- Интерфейс
YMMMutableUserProfile
переименован вMutableUserProfile
. - Интерфейс
YMMProfileAttribute
переименован вProfileAttribute
. - Интерфейс
YMMUserProfile
переименован вUserProfile
. - Перечисление
YMMGenderType
переименовано вGenderType
. - Протокол
YMMBirthDateAttribute
переименован вBirthDateAttribute
. - Протокол
YMMCustomBoolAttribute
переименован вCustomBoolAttribute
. - Протокол
YMMCustomCounterAttribute
переименован вCustomCounterAttribute
. - Протокол
YMMCustomNumberAttribute
переименован вCustomNumberAttribute
. - Протокол
YMMCustomStringAttribute
переименован вCustomStringAttribute
. - Протокол
YMMGenderAttribute
переименован вGenderAttribute
. - Протокол
YMMNameAttribute
переименован вNameAttribute
. - Протокол
YMMNotificationsEnabledAttribute
переименован вNotificationsEnabledAttribute
.
Ошибки
- Интерфейс
YMMError
переименован вAppMetricaError
и перенесен в модульAppMetricaCrashes
. - Константа
YMMBacktraceErrorKey
переименована вBacktraceErrorKey
и перенесена в модульAppMetricaCrashes
. - Перечисление
YMMErrorReportingOptions
переименовано вErrorReportingOptions
и перенесено в модульAppMetricaCrashes
. - Протокол
YMMErrorRepresentable
переименован вErrorRepresentable
и перенесен в модульAppMetricaCrashes
.
AdRevenue
- Интерфейс
YMMAdRevenueInfo
переименован вAdRevenueInfo
. - Интерфейс
YMMMutableAdRevenueInfo
переименован вMutableAdRevenueInfo
. - Перечисление
YMMAdType
переименовано вAdType
.
ECommerce
- Интерфейс
YMMECommerceAmount
переименован вECommerceAmount
. - Интерфейс
YMMECommerceCartItem
переименован вECommerceCartItem
. - Интерфейс
YMMECommerceOrder
переименован вECommerceOrder
. - Интерфейс
YMMECommercePrice
переименован вECommercePrice
. - Интерфейс
YMMECommerceProduct
переименован вECommerceProduct
. - Интерфейс
YMMECommerceReferrer
переименован вECommerceReferrer
. - Интерфейс
YMMECommerceScreen
переименован вECommerceScreen
. - Интерфейс
YMMECommerce
переименован вECommerce
.
Revenue
- Интерфейс
YMMMutableRevenueInfo
переименован вMutableRevenueInfo
. - Интерфейс
YMMRevenueInfo
переименован вRevenueInfo
.- Конструктор
init(price:currency:)
удален, используйтеinit(priceDecimal:currency)
. - Конструктор
init(price:currency:quantity:productID:transactionID:receiptData:payload:)
удален, используйтеinit(priceDecimal:currency:quantity:productID:transactionID:receiptData:payload:)
.
- Конструктор
Префикс YMM
сменился на AMA
.
- Интерфейс
YMMYandexMetrica
переименован вAMAAppMetrica
.- Метод
-getPluginExtension:
перенесен в классAMAAppMetricaCrashes
и переименован в-pluginExtension:
. - Метод
+handleOpenURL:
переименован в+trackOpeningURL:
. - Метод
+initWebViewReporting:onFailure:
переименован в+setupWebViewReporting:onFailure:
, смотрите подробнее в Отправка события из JavaScript-кода WebView. - Метод
+libraryVersion:
удален, используйте свойствоlibraryVersion
. - Метод
+reportError:exception:onFailure:
удален, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportError:onFailure:
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportError:options:onFailure:
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportEvent:params:onFailure:
переименован в+reportEvent:parameters:onFailure:
- Метод
+reportNSError:onFailure:
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportNSError:options:onFailure:
перенесен в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportReferralUrl:
удален. - Метод
+reporterForApiKey:
переименован в+reporterForAPIKey:
. - Метод
+requestAppMetricaDeviceIDWithCompletionQueue:
удален, используйте+requestStartupIdentifiersWithKeys:completionQueue:completionBlock:
. - Метод
+setErrorEnvironmentValue:forKey:
удален, используйте[[AMAAppMetricaCrashes crashes] setErrorEnvironmentValue:value forKey:key]
. - Метод
+setLocation:
удален, используйте свойствоcustomLocation
. - Метод
+setLocationTracking:
удален, используйте свойствоlocationTrackingEnabled
. - Метод
+setStatisticsSending:
переименован в+setDataSendingEnabled:
. - Метод
+setUserProfileID:
удален, используйте свойствоuserProfileID
.
- Метод
- Интерфейс
YMMYandexMetricaConfiguration
переименован вAMAAppMetricaConfiguration
.- Конструктор
-initWithApiKey:
переименован в-initWithAPIKey:
. - Свойство
apiKey
переименован вAPIKey
. - Свойство
appForKids
удалено, смотрите инструкцию Использование SDK для детских приложений. - Свойство
crashReporting
удалено, смотрите инструкцию Работа с крэшами и ошибками. - Свойство
location
переименовано вcustomLocation
. - Свойство
logs
переименовано вlogsEnabled
. - Свойство
statisticsSending
переименовано вdataSendingEnabled
.
- Конструктор
- Интерфейс
YMMYandexMetricaPreloadInfo
переименован вAMAAppMetricaPreloadInfo
.
Reporter
- Интерфейс
YMMMutableReporterConfiguration
переименован вAMAMutableReporterConfiguration
.- Свойство
logs
переименовано вlogsEnabled
. - Свойство
statisticsSending
переименовано вdataSendingEnabled
.
- Свойство
- Интерфейс
YMMPluginErrorDetails
переименован вAMAPluginErrorDetails
. - Интерфейс
YMMReporterConfiguration
переименован вAMAReporterConfiguration
.- Конструктор
-initWithApiKey:
переименован в-initWithAPIKey:
. - Свойство
apiKey
переименовано вAPIKey
. - Свойство
logs
переименовано вlogsEnabled
. - Свойство
statisticsSending
переименовано вdataSendingEnabled
.
- Конструктор
- Интерфейс
AMAAppMetricaCrashesConfiguration
добавлен. - Интерфейс
YMMStackTraceElement
переименован вAMAStackTraceElement
. - Интерфейс
YMMYandexMetricaPlugins
переименован вAMAAppMetricaPlugins
.- Метод
getPluginExtension
переименован вpluginExtension
.
- Метод
- Интерфейс
AMAAppMetricaCrashes
добавлен.- Метод
-clearErrorEnvironment:
добавлен. - Метод
-enableANRMonitoring:
добавлен. - Метод
-enableANRMonitoringWithWatchdogInterval:pingInterval:
добавлен. - Метод
-requestCrashReportingStateWithCompletionQueue:completionBlock:
добавлен. - Метод
-setErrorEnvironmentValue:forKey:
добавлен.
- Метод
- Протокол
YMMYandexMetricaPluginReporting
переименован вAMAAppMetricaPluginReporting
.- Метод
getPluginExtension
переименован вpluginExtension
.
- Метод
- Протокол
YMMYandexMetricaReporting
переименован вAMAAppMetricaReporting
.- Метод
+reportError:onFailure:
перенесен в протоколAMAAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportError:options:onFailure:
перенесен в протоколAMAAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportEvent:params:onFailure:
переименован в+reportEvent:parameters:onFailure:
. - Метод
+reportNSError:onFailure:
перенесен в протоколAMAAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+reportNSError:options:onFailure:
перенесен в протоколAMAAppMetricaCrashReporting
, в классAppMetricaCrashes
и в модульAppMetricaCrashes
, смотрите инструкцию Работа с крэшами и ошибками. - Метод
+setStatisticsSending:
переименован в+setDataSendingEnabled:
.
- Метод
- Константа
kYMMPlatformNative
переименована вkAMAPlatformNative
. - Константа
kYMMPlatformFlutter
переименована вkAMAPlatformFlutter
. - Константа
kAMACrashReportingStateEnabledKey
добавлена с версии 5.4.0. - Константа
kAMACrashReportingStateCrashedLastLaunchKey
добавлена с версии 5.4.0.
Атрибуты пользователя
- Интерфейс
YMMMutableUserProfile
переименован вAMAMutableUserProfile
. - Интерфейс
YMMProfileAttribute
переименован вAMAProfileAttribute
. - Интерфейс
YMMUserProfile
переименован вAMAUserProfile
. - Перечисление
YMMGenderType
переименовано вAMAGenderType
. - Протокол
YMMBirthDateAttribute
переименован вAMABirthDateAttribute
. - Протокол
YMMCustomBoolAttribute
переименован вAMACustomBoolAttribute
. - Протокол
YMMCustomCounterAttribute
переименован вAMACustomCounterAttribute
. - Протокол
YMMCustomNumberAttribute
переименован вAMACustomNumberAttribute
. - Протокол
YMMCustomStringAttribute
переименован вAMACustomStringAttribute
. - Протокол
YMMGenderAttribute
переименован вAMAGenderAttribute
. - Протокол
YMMNameAttribute
переименован вAMANameAttribute
. - Протокол
YMMNotificationsEnabledAttribute
переименован вAMANotificationsEnabledAttribute
.
Ошибки
- Интерфейс
YMMError
переименован вAMAError
. - Константа
YMMBacktraceErrorKey
переименована вAMABacktraceErrorKey
. - Перечисление
YMMErrorReportingOptions
переименовано вAMAErrorReportingOptions
. - Протокол
YMMErrorRepresentable
переименован вAMAErrorRepresentable
.
AdRevenue
- Интерфейс
YMMAdRevenueInfo
переименован вAMAAdRevenueInfo
. - Интерфейс
YMMMutableAdRevenueInfo
переименован вAMAMutableAdRevenueInfo
. - Перечисление
YMMAdType
переименовано вAMAAdType
.
ECommerce
- Интерфейс
YMMECommerceAmount
переименован вAMAECommerceAmount
. - Интерфейс
YMMECommerceCartItem
переименован вAMAECommerceCartItem
. - Интерфейс
YMMECommerceOrder
переименован вAMAECommerceOrder
. - Интерфейс
YMMECommercePrice
переименован вAMAECommercePrice
. - Интерфейс
YMMECommerceProduct
переименован вAMAECommerceProduct
. - Интерфейс
YMMECommerceReferrer
переименован вAMAECommerceReferrer
. - Интерфейс
YMMECommerceScreen
переименован вAMAECommerceScreen
. - Интерфейс
YMMECommerce
переименован вAMAECommerce
.
Revenue
- Интерфейс
YMMMutableRevenueInfo
переименован вAMAMutableRevenueInfo
. - Интерфейс
YMMRevenueInfo
переименован вAMARevenueInfo
.- Конструктор
-initWithPrice:currency:
удален, используйте-initWithPriceDecimal:currency:
. - Конструктор
-initWithPrice:currency:quantity:productID:transactionID:receiptData:payload:
удален, используйте-initWithPriceDecimal:currency:quantity:productID:transactionID:receiptData:payload:
.
- Конструктор
Работа с крэшами и ошибками
API для работы с ошибками теперь находится в модуле AppMetricaCrashes
. Если вы подключаете AppMetricaAnalytics
, отдельное подключение AppMetricaCrashes
не требуется, так как модуль входит в состав AppMetricaAnalytics
.
Во все файлы, где используется API крэшей или ошибок, добавьте импорт:
import AppMetricaCrashes
Настройка стратегии отправки крэшей задается с помощью класса AppMetricaCrashesConfiguration
:
var configuration = AppMetricaCrashesConfiguration()
configuration.autoCrashTracking = true // Если этот параметр включен, крэши будут автоматически отправляться в AppMetrca
configuration.probablyUnhandledCrashReporting = true // Используйте этот параметр для включения или отключения отслеживания неявных сбоев, например, OOM крэшей
configuration.ignoredCrashSignals = [] // Эта настройка позволяет указать массив номеров UNIX-сигналов из sys/signal.h, которые будут проигнорированы системой отслеживания сбоев
configuration.applicationNotRespondingDetection = true // Эта настройка включает обнаружение ситуации, когда основной поток приложения перестает отвечать (ANR)
configuration.applicationNotRespondingWatchdogInterval = 4.0 // Устанавливает интервал времени, который будет ожидать watchdog, прежде чем сообщить о состоянии "Приложение не отвечает" (ANR)
configuration.applicationNotRespondingPingInterval = 0.1 // Устанавливает частоту, с которой watchdog будет проверять состояние "Приложение не отвечает" (ANR)
AppMetricaCrashes.crashes().setConfiguration(configuration)
Для отправки ошибок воспользуйтесь методами из класса AppMetricaCrashes
. Их сигнатура совпадает с сигнатурами аналогичных методов из YMMYandexMetrica
. Поэтому достаточно заменить YMMYandexMetrica
на AppMetricaCrashes.crashes()
.
AppMetricaCrashes.crashes().report(error:error)
AppMetricaCrashes.crashes().report(error:error, onFailure:nil)
AppMetricaCrashes.crashes().report(error:error, options:options, onFailure:nil)
AppMetricaCrashes.crashes().report(nserror:error)
AppMetricaCrashes.crashes().report(nserror:error, onFailure:nil)
AppMetricaCrashes.crashes().report(nserror:error, options:options, onFailure:nil)
Во все файлы, где используется API крэшей или ошибок, добавьте импорт:
#import <AppMetricaCrashes/AppMetricaCrashes.h>
Настройка стратегии отправки крэшей задается с помощью класса AMAAppMetricaCrashesConfiguration
:
AMAAppMetricaCrashesConfiguration *configuration = [[AMAAppMetricaCrashesConfiguration alloc] init];
configuration.autoCrashTracking = YES; // Если этот параметр включен, крэши будут автоматически отправляться в AppMetrca
configuration.probablyUnhandledCrashReporting = YES; // Используйте этот параметр для включения или отключения отслеживания неявных сбоев, например, OOM крэшей
configuration.ignoredCrashSignals = @[]; // Эта настройка позволяет указать массив номеров UNIX-сигналов из sys/signal.h, которые будут проигнорированы системой отслеживания сбоев
configuration.applicationNotRespondingDetection = YES; // Эта настройка включает обнаружение ситуации, когда основной поток приложения перестает отвечать (ANR)
configuration.applicationNotRespondingWatchdogInterval = 4.0; // Устанавливает интервал времени, который будет ожидать watchdog, прежде чем сообщить о состоянии "Приложение не отвечает" (ANR)
configuration.applicationNotRespondingPingInterval = 0.1; // Устанавливает частоту, с которой watchdog будет проверять состояние "Приложение не отвечает" (ANR)
[[AMAAppMetricaCrashes crashes] setConfiguration:configuration];
Для отправки ошибок воспользуйтесь методами из класса AppMetricaCrashes
. Их сигнатура совпадает с сигнатурами аналогичных методов из YMMYandexMetrica
. Поэтому достаточно заменить YMMYandexMetrica
на [AMAAppMetricaCrashes crashes]
.
[[AMAAppMetricaCrashes crashes] reportError:error onFailure:nil];
[[AMAAppMetricaCrashes crashes] reportError:error options:options onFailure:nil];
[[AMAAppMetricaCrashes crashes] reportNSError:error onFailure:nil];
[[AMAAppMetricaCrashes crashes] reportNSError:error options:options onFailure:nil];
Более подробно про отправку ошибок смотрите в примерах использования.
Отправка события из JavaScript-кода WebView
API для настройки отправки событий из JavaScript-кода WebView теперь находится в модуле AppMetricaWebKit
. Если вы подключаете AppMetricaAnalytics
, отдельное подключение AppMetricaWebKit
не требуется, так как модуль входит в состав AppMetricaAnalytics
.
В каждом файле, где используется настройка WebView в рамках библиотеки AppMetrica, добавьте следующую строку:
import AppMetricaWebKit
Необходимо заменить экземпляр WKUserContentController
на экземпляр обертки JSController
. Замените:
let userController = WKUserContentController()
YMMYandexMetrica.initWebViewReporting(userController, onFailure: nil)
на
let userController = WKUserContentController()
AppMetrica.setupWebViewReporting(with: JSController(userContentController: userController), onFailure: nil)
В каждом файле, где используется настройка WebView, добавьте следующую строку:
#import <AppMetricaWebKit/AppMetricaWebKit.h>
Необходимо заменить экземпляр WKUserContentController
на экземпляр обертки AMAJSController
. Замените:
WKUserContentController *userController = [[WKUserContentController alloc] init];
[YMMYandexMetrica initWebViewReporting:userController onFailure:nil];
на
WKUserContentController *userController = [[WKUserContentController alloc] init];
[AMAAppMetrica setupWebViewReporting:[[AMAJSController alloc] initWithUserContentController:userController] onFailure:nil];
Более подробно про настройку отправки событий из WebView смотрите в примерах использования.
Использование SDK для детских приложений
Чтобы SDK можно было использовать в приложении, ориентированном на детскую аудиторию, исключите модуль AppMetricaAdSupport
.
Вместо
pod 'AppMetricaAnalytics', '~> 5.0.0'
используйте
pod 'AppMetricaCore', '~> 5.0.0'
pod 'AppMetricaCrashes', '~> 5.0.0' # если вам нужны крэши и ошибки
pod 'AppMetricaWebKit', '~> 5.0.0' # если вам нужно отправлять события из WebView
Если зависимости установлены через Xcode
Исключите AppMetricaAdSupport
из Frameworks, Libraries, and Embedded Content
для вашего таргета.
Если используется Package.swift манифест
Отключите модуль AppMetricaAdSupport
:
.target(
name: "MyTargetName",
dependencies: [
.product(name: "AppMetricaCore", package: "AppMetrica"),
.product(name: "AppMetricaCrashes", package: "AppMetrica"),
.product(name: "AppMetricaWebKit", package: "AppMetrica"),
// .product(name: "AppMetricaAdSupport", package: "AppMetrica"), // Этот модуль отлючен
]
),
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.