Gradle打包并上传到FTP

677 阅读1分钟

通常情况下开发完功能后需要进行测试,在修复bug过程中难免的要多次打包然后发给测试人员,这个过程没什么技术含量,但是却很浪费时间。

业界内通常的做法是使用jenkins之类的自动化部署、也有第三方的一些工具,例如fir.im。还有直接使用微信、QQ手动发送的。

这里我推荐使用gradle打包并上传到ftp,这种方式是需要添加一个task即可。下面的代码仅供参考,大家可以根据项目实际情况进行修改。

```
// 执行./gradlew uploadApk 自动打包并上传到ftp
task("uploadApk") {
    doLast {
        def ftpUserName = "ftp用户名"
        def ftpPwd = "ftp密码"
        def apkDirectory = "${projectDir}/build/outputs/apk/release/"

        def fileUrl = apkDirectory + "release.apk"
        def ftpUrl = "ftp地址"
        def command = "curl -u $ftpUserName:$ftpPwd -T $fileUrl $ftpUrl"
        println "command:" + command
        try {
            exec {
                ExecSpec execSpec ->
                    executable 'bash'
                    args '-c', command
            }
            println "uploadApk success~"
        } catch (Exception e) {
            e.printStackTrace()
        }
    }
}
```
// uploadApk依赖assembleRelease任务
uploadApk.dependsOn("assembleRelease")

将上述代码补全,然后放在build.gradle文件中,与android代码块平级即可。

想打新包的时候在Terminal中执行./gradlew uploadApk命令就开始打包上传了。

上传后在ftp中即可看到新包了。

image.png

此时只需要把这个ftp的url给到测试人员收藏好就行了。可以让大家节省很多宝贵时间。