gpt4 book ai didi

android - 将构建机器签名添加到gradle生成的变量

转载 作者:行者123 更新时间:2023-12-03 04:34:31 24 4
gpt4 key购买 nike

我想标记从gradle生成的一些变量(在我的情况下,它是稍后与HTTP请求一起使用的User Agent),以便以后能够区分是哪个开发者构建了该应用程序(例如,如果某个开发者犯了错误并且他的应用程序是DDoSing服务器)。

所以现在我可以通过以下方式区分releasedebug:

buildTypes {
debug {
buildConfigField "String", "USER_AGENT", "\"Android-debug\""
}
release {
buildConfigField "String", "USER_AGENT", "\"Android-release\""
}
}

但是对于 debug,我想添加一些信息以了解谁构建了该应用程序实例,它可能是git login,计算机名或其他名称。

最佳答案

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";

关于android - 将构建机器签名添加到gradle生成的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35266935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com