美文网首页
【Gradle Task开发】原生实现上传Fir,无需添加额外依

【Gradle Task开发】原生实现上传Fir,无需添加额外依

作者: JeahWan | 来源:发表于2020-05-14 18:27 被阅读0次

    只需要在app下的build.gralde中增加以下这段task代码,替换自己的api_token,无需任何三方库依赖,即可原生实现自动打包并上传,解放双手,无需等待~

    //fir上传
    task uploadFir() {
        def fir_api_token = "您在fir上获取的api token"
        doLast {
            println "即将上传到fir..."
    
            //获取fir上传凭证
            def preUpload = ("curl -X POST -d type=android&" +
                    "api_token=$fir_api_token " +
                    "bundle_id=$project.android.defaultConfig.applicationId&" +
                    "http://api.bq04.com/apps").execute().text
            def preUploadBean = new groovy.json.JsonSlurper().parseText(preUpload)
            def key = preUploadBean["cert"]["binary"]["key"]
            def token = preUploadBean["cert"]["binary"]["token"]
            def upload_url = preUploadBean["cert"]["binary"]["upload_url"]
    
            //执行上传命令 
            //applicationVariants[0]这个数组是各种类型包的路径 0为debug 1为release
            //如有其它自定义的 可自行println查看
            def apkFile = project.android.applicationVariants[0].outputs.first().outputFile
            def uploadResult = ("curl -X POST --form file=@$apkFile" +
                    " -F token=$token" +
                    " -F key=$key" +
                    " -F x:version=$project.android.defaultConfig.versionName" +
                    " -F x:build=$project.android.defaultConfig.versionCode" +
                    " $upload_url").execute().text
            println(uploadResult)
            println "上传完成"
        }.dependsOn('assembleDebug')
          //这里控制打什么类型的包,即执行此task时会先打包 再上传 如release包即为:assembleRelease
    }
    

    IDE右侧Gradle->app->other->uploadFir,双击执行即可。

    相关文章

      网友评论

          本文标题:【Gradle Task开发】原生实现上传Fir,无需添加额外依

          本文链接:https://www.haomeiwen.com/subject/gwrxohtx.html