我的问题很简单,但找不到解决方案。在我的应用程序中,我添加了crashlytics,并且我想使用beta
上传构建。
对于一个productFlavor,我使用了一个名为crashlyticsUploadDistribution<ProductFlavor>Release
的任务,在必须使用assemble<ProductFlavor>Release
进行组装之前,否则它可能会上传错误的apk。
现在我想将这两个任务合并为一个,所以在我的gradle.file中
task prepareFabric(group: 'aat') {
println 'HereSTART'
dependsOn 'assemble<ProductFlavor>Release'
}
task publishRealeaseOnFabric(group: 'aat') {
mustRunAfter prepareFabric
println 'HereFINAL'
dependsOn 'crashlyticsUploadDistribution<ProductFlavor>Release'
}
现在,当我执行任务(
publishRealeaseOnFabric
)时,出现print
,但未执行以下行dependsOn 'assemble<ProductFlavor>Release'
我的问题是:如何在一个任务中先执行两个任务
assemble<ProductFlavor>Release
,然后再进行crashlyticsUploadDistribution<ProductFlavor>Release
? 最佳答案
我用它来创造所有的味道
//Creates the app for all the productFlavors
File crashlyticsProperties = new File("${project.projectDir.absolutePath}/fabric.properties")
applicationVariants.all { variant ->
variant.productFlavors.each { flavor ->
println("flavor : " + variant.name)
def variantSuffix = variant.name.capitalize()
def generatePropertiesTask = task("fabricGenerateProperties${variantSuffix}") << {
Properties properties = new Properties()
properties.put("apiKey", flavor.fabricApiKey)
properties.put("apiSecret", flavor.fabricApiSecret)
properties.store(new FileWriter(crashlyticsProperties), "")
}
def generateResourcesTask = project.tasks.getByName("fabricGenerateResources${variantSuffix}")
generateResourcesTask.dependsOn generatePropertiesTask
generateResourcesTask.doLast {
println "Removing fabric.properties"
crashlyticsProperties.delete()
}
}
}