![]() |
1
4
我找到了另一种方法,并想与大家分享。 请注意,这是我第一次使用gradle编写一些任务,因此代码根本不是最优的(目前我无法花更多时间来改进它)。 解释我所做的很简单。 1) 就在任务流程FlavorBuildTypeGoogleServices之前,这是来自Google Services的任务,它将读取Google服务。json文件,我触发一些代码来更新google服务。json文件。 为此:
2) 从任务名称中检索当前的flavor和buildType(任务名称的示例:processProdReleaseGoogleServices,格式为process'flavor''buildType'GoogleServices)
3) 从currentFlavor变量中删除buildType。为了做到这一点,我只需循环遍历项目中的所有buildType,并将其从currentFlavor变量中删除
此时,变量currentFlavor具有currentFlavor(例如“prod”) 4) 从我的构建中定义的风格中检索包名称。格拉德尔 在我的构建中。gradle,我为每种口味指定了包装名称:
我这样检索它: (包名返回时带有[],因此我必须删除它们。例如,我将检索[PackageName 1])
5) 现在我有了当前构建的包名,我只需要打开当前的google服务。json文件,并更新其中的包名称。为此,我添加了一个方法updategogleservicesjsonfile。 请小心更改第二行上的文件路径以指向您的位置。
这里有一些更新谷歌服务的代码。在执行读取任务之前的json文件。 密码
|
![]() |
2
2
答案已更新首先,我必须解释一下,我使用Jenkins来编译我的应用程序,因此构建过程与Android Studio中的过程并不完全相同。在我的例子中,Jenkins只构建发布版本,并没有以与IDE相同的方式获得这些风格。我将解释这两种解决方案:
在
矿
詹金斯得到了
当一切都完成后,在它发布应用程序之前(
就我而言,我只想改变
替代解决方案(使用口味)
在这个解决方案中,我有
您可以在覆盖它之前检查flavor文件夹中是否存在另一个JSON,以防其他值的值不同。 旧解决方案
这是我的
哪里
的位置
*如果同时定义了多个flavor,则(至少)会出现一个问题,因为此任务总是覆盖同一文件,因此最终的应用程序id将是您最后定义的。 如果您有其他方法,请随时发布。 |
![]() |
Abhilash Das · 输入文本时,编辑文本与工具栏重叠 1 年前 |
![]() |
Community wiki · 局部变量可能尚未初始化 1 年前 |
![]() |
jvargas · 如何获取上个月的第一天和最后一天以及一年的第一天 2 年前 |