Localytics - Программно установлен ключ приложения
Можно ли программно установить ключ приложения для Localytics? Из руководства по интеграции ( https://support.localytics.com/Android_SDK_integration) кажется, что вы должны установить его в файле манифеста как метаданные.
<meta-data android:name="LOCALYTICS_APP_KEY" android:value="APP KEY FROM STEP 2"/>
Из следующего поста также кажется, что невозможно динамически устанавливать метаданные Android. Как динамически добавлять метаданные (не в манифесте, а внутри кода)?
Я хотел бы иметь возможность динамически устанавливать ключ приложения на основе Gradle buildType, чтобы у меня был ключ выпуска и ключ приложения отладки.
3 ответа
Вы можете использовать манифест слияния для поддержки различных ключей приложения для ваших типов сборки (например, отладка или выпуск) или разновидностей вашего продукта (например, бесплатное и платное).
Для поддержки различных ключей приложения для типов ваших сборок:
- Создайте
src/debug/AndroidManifest.xml
а такжеsrc/release/AndroidManifest.xml
, - Удалить метаданные из
src/main/AndroidManifest.xml
, - Добавьте соответствующий тег метаданных в свой манифест конкретного типа сборки.
src/debug/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app" >
<application>
<meta-data
android:name="LOCALYTICS_APP_KEY"
android:value="DEBUG_APP_KEY" />
</application>
</manifest>
src/release/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app" >
<application>
<meta-data
android:name="LOCALYTICS_APP_KEY"
android:value="RELEASE_APP_KEY" />
</application>
</manifest>
Для разных ключей приложения в зависимости от вашего продукта, просто замените debug
а также release
выше с названиями вашего продукта.
В Localytics.integrate есть переопределение, которое принимает ключ API.
Localytics.integrate(this, "API_KEY")
Если в случае, если вы используете autoIntegrate
используйте следующий API, который принимает контекст приложения в качестве первого аргумента.
Localytics.autoIntegrate(this, "API_KEY");