我想标记一些从gradle生成的变量(在我的例子中,它是后来与HTTP请求一起使用的用户代理),以便以后能够区分哪个开发人员构建了应用程序(例如,如果某个开发人员犯了错误,他的应用程序是DDoSing服务器)。
所以现在我可以用以下方法来区分release和debug:
buildTypes {
debug {
buildConfigField "String", "USER_AGENT", "\"Android-debug\""
}
release {
buildConfigField "String", "USER_AGENT", "\"Android-release\""
}
}但是对于debug,我想添加一些东西来知道是谁创建了应用程序实例,它可能是git登录名、机器名或其他东西。
发布于 2016-02-09 09:40:58
gradle构建文件实际上是Groovy代码,您可以自由地在其中放置任何您想要的内容。您只需确保代码在描述构建的DSL中使用之前运行即可。因此,如果您想从系统中获取一些东西,只需编写Groovy代码就可以了。Groovy很像Java,而且您可以在运行时使用完整的JDK,因此入门应该很容易。
如果您想要访问有关构建机器和环境的内容,则可能需要使用不同的命令来收集数据。用这些数据填充一些变量。然后像以前一样使用buildConfigField将这些值放到BuildConfig.java中。
请记住,您可能希望在debug和release中都提供一些值,以便它们都生成相同的BuildConfig符号。否则,您的应用程序可能无法在一个或另一个配置中编译。
顺便说一句。您可以使用已经添加到BuildConfig中的属性来区分debug和release之间的区别,因此您不需要添加更多的东西来区分区别。这样的代码行将始终出现(请查看生成的BuildConfig.java以亲自查看):
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String BUILD_TYPE = "debug";https://stackoverflow.com/questions/35266935
复制相似问题