Кратко: что нужно учесть при переходе между версиями Android SDK AppsFlyer.
В интеграцию Android SDK были внесены значительные изменения.
Основные изменения:
- Теперь SDK является синглтоном, то есть все вызовы API должны выполняться следующим образом:
AppsFlyerLib.getInstance().setCustomerUserId("myId");
- SetAppsFlyerKey() — этот метод был удален; в результате мы ожидаем получить dev key с помощью нового метода инициализации: AppsFlyerLib.getInstance().startTracking(this,"YOUR_APPSFLYER_DEV_KEY")
- sendTracking(), onActivityPause(), onActivityResume() были удалены. SDK автоматически определяет запуски
- Deep Link — для активностей с поддержкой диплинкинга разработчик должен вызвать:
AppsFlyerLib.getInstance().sendDeepLinkData(this) в onCreate()
отображаемой активности.
Это требуется только в том случае, если приложение не работает в фоновом режиме.
- Logging — значение флага логирования по умолчанию изменено на false. Кроме того, если флаг отключен, логи не выводятся (исправление ошибки). Чтобы включить флаг логирования, разработчик должен вызвать:
AppsFlyerLib.getInstance().setDebugLog(true);
Чтобы посмотреть руководство по интеграции AppsFlyer SDK для Android, нажмите здесь.
Переход на 4.4.0 и выше
Android SDK AppsFlyer v4.4.0 больше не поддерживает следующий receiver в манифесте:
<receiver android:name="com.appsflyer.AppsFlyerLib">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
</receiver>
Если вы используете версию 4.4.0+, удалите этот receiver из файла манифеста.
Единственный обязательный receiver для SDK выглядит следующим образом:
<receiver
android:name="com.appsflyer.MultipleInstallBroadcastReceiver"
android:exported="true">
<intent-filter>
<action android:name="com.android.vending.INSTALL_REFERRER" />
</intent-filter>
</receiver>