我的Android应用程序与app/build.gradle
中的buildConfigField
中定义的服务器通信:
buildConfigField "android.net.Uri", "server", 'android.net.Uri.parse("https://app.example.com")'
(We请使用buildConfigField
,因为这样可以让不同“风格”的应用程序指向不同的服务器。)
有时,开发人员需要更改此值,以指向在不同服务器上运行的服务器软件的本地副本。
我遇到的问题是,这些开发者经常忘记他们已经做了这些更改,然后盲目地将他们所有的更改提交到git仓库,从而破坏了其他人的应用,直到其他人将其更改回原始值。
是否有一种方法可以让开发人员从一个单独的(.gitingore
d)文件中覆盖buildConfigField
,这样他们就无法提交他们的更改?
1条答案
按热度按时间z4bn682m1#
受@TTT的一条评论启发,我现在是如何从
.env
文件(或环境变量)生成BuildConfig
字段的。为了防止共享不需要的变量(例如其他可能包含敏感数据的系统变量),它只处理名称以ANDROID_
开始的变量。这需要在项目中设置
co.uzzu.dotenv.gradle
Gradle插件。它支持
boolean
、int
、double
、String
或android.net.Uri
等变量(但只有String
可以是null
,因为它无法在没有值的情况下确定类型)。