前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android Studio greadle打包拷贝apk

Android Studio greadle打包拷贝apk

作者头像
Zachary46
发布2023-02-28 15:29:23
1K0
发布2023-02-28 15:29:23
举报
文章被收录于专栏:Zachary46Zachary46

根目录build.gradle下添加如下代码:

代码语言:javascript
复制
subprojects() {
    //新版gradle每次打包会清空release文件夹,拷贝一份到其它地方保存包~
    //assembleRelease这个任务,就是我们普通的打包任务。打release包。
    def releaseTasks = project.getTasksByName("assembleRelease", false)
    copyApkFile(releaseTasks, project)
}

def copyApkFile(Set<Task> tasks, Project project) {
    def fromDir = "/build/outputs/apk/release"
    for (task in tasks) {
        def dir = project.getProjectDir().getAbsolutePath()
        println "assemble release dir = $dir"
        //我们目前存放打包后apk的目录
        def apkDir = dir + fromDir
        def file = new File(apkDir)

        if (file.exists()) {
            def isDelete = delete(apkDir)
            println "del: $isDelete"
        }
        //在task执行完成之后
        task.doLast {
            if (file.exists()) {
                //将生成的apk整个目录复制到我们指定位置
                copy {
                    println "copy dir = ${file.getAbsolutePath()}"
                    from apkDir
                    def toDir = rootProject.getRootDir().getAbsolutePath() + "/apk/"
                    println "to dir = ${toDir}"
                    into toDir
                }
            }
        }
    }
}

用assembleRelease命令打包(前提是配置了signingConfigs)

image.png

在app目录下的build.gradle配置signingConfigs

代码语言:javascript
复制
signingConfigs {
        debug {
            storeFile file(xxx)
            storePassword xxx
            keyAlias = xxx
            keyPassword xxx
        }
        release {
            storeFile file(xxx)
            storePassword xxx
            keyAlias = xxx
            keyPassword xxx
        }
    }

输出包名最后改一下,方便存储

代码语言:javascript
复制
def appEnv = "pro"

def releaseTime() {
    return new Date().format("yyyyMMddHHmm", TimeZone.getTimeZone("GMT+08:00"))
}

android.applicationVariants.all {
        variant ->
            variant.outputs.all {
                //在这里修改apk文件名
                outputFileName = "${appEnv}_${variant.versionName}_${releaseTime()}.apk"
            }
 }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-02-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档