Localytics - 以编程方式设置应用程序密钥

Localytics - Programmatically set app key

是否可以通过编程方式为 Localytics 设置应用密钥?从集成指南 (https://support.localytics.com/Android_SDK_integration) 看来,您必须将其作为元数据设置在清单文件中。

<meta-data android:name="LOCALYTICS_APP_KEY" android:value="APP KEY FROM STEP 2"/>

从下面的post看来,动态设置Android元数据似乎也是不可能的。 How to add metadata dynamically (Not in manifest but inside code)?

我希望能够根据 Gradle buildType 动态设置应用程序密钥,这样我就可以获得发布应用程序密钥和调试应用程序密钥。

您可以使用清单合并来为您的构建类型(例如调试与发布)或您的产品风格(例如免费与付费)支持不同的应用密钥。

为您的构建类型支持不同的应用密钥:

  1. 创建 src/debug/AndroidManifest.xmlsrc/release/AndroidManifest.xml
  2. src/main/AndroidManifest.xml 中删除元数据标签。
  3. 将适当的元数据标记添加到构建类型特定的清单中。

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>

对于基于您的产品口味的不同应用密钥,只需将上面的 debugrelease 替换为您的产品口味名称即可。

Localytics.integrate 上有一个覆盖 api 键。

Localytics.integrate(this, "API_KEY")

如果您正在使用 autoIntegrate,请使用以下 API,它将应用程序上下文作为第一个参数。

Localytics.autoIntegrate(this, "API_KEY");