我的问题很简单,但找不到解决方案。在我的应用程序中,我添加了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()
        }
    }
}

08-18 07:53