我希望标记一些由gradle生成的变量(在我的情况下,它的用户代理稍后用于HTTP请求),以便稍后能够区分哪个开发人员构建应用程序(例如,如果某些开发人员犯了一个错误,他的应用程序是DDoSing服务器。)
所以现在我可以将release
与debug
区分开来:
buildTypes {
debug {
buildConfigField "String", "USER_AGENT", "\"Android-debug\""
}
release {
buildConfigField "String", "USER_AGENT", "\"Android-release\""
}
}
但是对于debug
我想添加一些知道构建应用实例的人,可能是git登录,机器名称或其他。
答案 0 :(得分:0)
gradle构建文件实际上是Groovy代码,您可以自由地将任何内容放入其中。您必须确保代码在用于描述构建的DSL之前运行。因此,如果您想从系统中获取内容,只需编写Groovy代码即可。 Groovy很像Java,你可以在运行时使用完整的JDK,因此它应该很容易上手。
如果要访问有关构建计算机和环境的内容,可能需要使用不同的命令来收集这些数据。用该数据填充一些变量。然后使用buildConfigField,因为您已经将这些值放入BuildConfig.java。
请记住,您可能希望在调试和发布中提供某些值,以便它们生成相同的BuildConfig符号。否则,您的应用可能无法在一个配置或另一个配置中编译。
顺便说一句。您可以使用已添加到BuildConfig的属性来区分调试和发布之间的区别,因此您不需要添加任何其他内容来区分它们。这些行总是会出现(查看生成的BuildConfig.java以便自己查看):
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String BUILD_TYPE = "debug";