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.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
替换为您的产品风格名称即可。
【讨论】:
【参考方案2】:Localytics.integrate 上有一个采用 api 密钥的覆盖。
Localytics.integrate(this, "API_KEY")
【讨论】:
【参考方案3】:如果您使用autoIntegrate
,请使用以下API,它将应用程序上下文作为第一个参数。
Localytics.autoIntegrate(this, "API_KEY");
【讨论】:
以上是关于Localytics - 以编程方式设置应用程序密钥的主要内容,如果未能解决你的问题,请参考以下文章
在多个平台上使用 Localytics - 单独的应用程序密钥?
如何对 PhoneGap Build 的 Localytics 安装进行故障排除?
如何解决PhoneGap Build的Localytics安装问题?