Руководство по миграции на версию 5.0.0
При миграции приложения с YandexMobileMetrica на AppMetrica будут сохранены основные идентификаторы и данные, то есть процесс перехода на новую версию не должен вызвать проблем и аномалий в отчетах.
Для миграции на новую версию выполните следующие шаги:
- Замените зависимости. Необходимые изменения указаны в разделе по переименованию зависимостей.
- Убедитесь, что вы не используете 2 версии AppMetrica SDK одновременно.
- Импортируйте зависимости в коде. Необходимые изменения указаны в разделе про импортирование зависимостей.
- В коде проекта замените те классы и методы, которые были просто переименованы. Необходимые изменения указаны в разделе по переименованию API.
- Если вы используете vendor keychain, замените пакет
com.yandex.mobile.appmetricaнаio.appmetrica, см. Идентификация устройств — vendor keychain. - Перейдите на новый 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"), // Этот модуль отлючен
]
),
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.