【Gradle Task】原生實(shí)現(xiàn)上傳Fir,無需添加額外依賴庫(已修改fir最新api地址)

只需要在app下的build.gralde中增加以下這段task代碼,替換自己的api_token,無需任何三方庫依賴,即可原生實(shí)現(xiàn)自動(dòng)打包并上傳,解放雙手,無需等待~

//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"]

        //執(zhí)行上傳命令 
        //applicationVariants[0]這個(gè)數(shù)組是各種類型包的路徑 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')
      //這里控制打什么類型的包,即執(zhí)行此task時(shí)會(huì)先打包 再上傳 如release包即為:assembleRelease
}

IDE右側(cè)Gradle->app->other->uploadFir,雙擊執(zhí)行即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容