Gradle:如何在构建后通过FTP上传发布APK文件

时间:2018-03-13 17:04:39

标签: android-studio gradle android-gradle

我想在构建发布版本时自动将APK文件上传到服务器。

为此,我将使用FTP协议。

我是关于Gradle脚本的新手。我使用了这2个问题(thisthis)作为基础,但有些事情没有成功。

有人能指出它是什么吗?

这是代码(在build.gradle上):

gradle.buildFinished {
println("---- Build finished. This message appears ----")
task ftp << {
    project.logger.lifecycle('-- This message does not appear --')
    ant {
        taskdef(name: 'ftp',
                classname: 'org.apache.tools.ant.taskdefs.optional.net.FTP',
                classpath: configurations.ftpAntTask.asPath)
        def destination = "ftp://xxxxxxxxxx@xxx.surftown.com/xxxxx/"
        def source = null
        android.applicationVariants.all { variant ->
            if ( (variant.name).equals("release") ) {
                variant.outputs.each { output ->
                    source = output.outputFile
                }
            }
        }
        def user = 'xxxxxxxxx'
        def pass = 'xxxxxxxxx'
        ftp(server: source, userid: user, password: pass, remoteDir: destination)
    }
}

1 个答案:

答案 0 :(得分:0)

gradle.buildFinished注册在构建结束时执行的钩子。在您的情况下,它只是创建ftp任务。

如果涉及build任务,请使用此选项:

build.finalizedBy(ftp)

否则,确保它适用于任何调用的任务:

tasks.all*.finalizedBy(ftp)

顺便说一下,你的第一个链接的第一个答案的评论部分对此进行了解释。