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

Posted

技术标签:

【中文标题】Localytics - 以编程方式设置应用程序密钥【英文标题】:Localytics - Programmatically set app key 【发布时间】:2015-02-19 22:11:25 【问题描述】:

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

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

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

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

【问题讨论】:

为什么 localytics 没有添加一个简单的 api 来设置应用程序密钥? +1。在我的情况下,下面提到的构建时解决方案不起作用,因为直到运行时我才知道要使用哪个 Localytics 应用程序密钥。 【参考方案1】:

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

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

    创建src/debug/AndroidManifest.xmlsrc/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>

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

【讨论】:

【参考方案2】:

Localytics.integrate 上有一个采用 api 密钥的覆盖。

Localytics.integrate(this, "API_KEY")

【讨论】:

【参考方案3】:

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

Localytics.autoIntegrate(this, "API_KEY");

【讨论】:

以上是关于Localytics - 以编程方式设置应用程序密钥的主要内容,如果未能解决你的问题,请参考以下文章

Localytics iOS 推送证书验证

在多个平台上使用 Localytics - 单独的应用程序密钥?

如何对 PhoneGap Build 的 Localytics 安装进行故障排除?

如何解决PhoneGap Build的Localytics安装问题?

无法在 iOS 上集成 localytics-react-native

如何以编程方式设置 iPhone 闹钟?