问题描述
我们正在研究基于Kotlin的Android项目,其中哨兵已经建立并正在运行。 我们想利用哨兵environment标签,以便能够区分生产和登台问题。
我已经知道的是:
- 可以设置标签programmatically。但是,这不是我们追求的目标。
- 可以实现via the sentry-cli。但是,这也不是我们所追求的。
- 应该可以使用 sentry.properties 文件配置不同的环境标签。但是我不知道要使用which keywords吗? Where in the project structure放置different sentry.properties files?
- 通过查看javascript文档,我怀疑应该有一种方法可以通过AndroidManifest.xml实现。有没有人设法使它像这样工作?
解决方法
您还可以在构建脚本中使用占位符,例如:
<meta-data android:name="io.sentry.environment" android:value="${environment}" />
然后在构建脚本中定义占位符:
android {
buildTypes {
getByName("debug") {
manifestPlaceholders = mapOf(
"environment" to "debug"
)
}
getByName("release") {
manifestPlaceholders = mapOf(
"environment" to "release"
)
}
}
}
此代码段使用的是kotlin kts文件,因此如果使用groovy,请对其进行修改。
,我们可以通过配置来实现,请检查以下代码以编程方式添加标签:
Sentry.configureScope(scope -> {
scope.setTag("Application Name",getString(R.string.app_name));
scope.setTag("Variant",BuildConfig.BUILD_TYPE);
});
您将在哨兵面板上获得这些标签。 ;)
,您可以通过AndroidManifest.xml
进行设置(假设您使用的是SDK 2.0版或更高版本)。 Here's an example。
<meta-data android:name="io.sentry.environment" android:value="staging" />