美文网首页
gradle拷贝生成apk文件到指定目录

gradle拷贝生成apk文件到指定目录

作者: 蒙面乌鸦 | 来源:发表于2019-06-09 23:22 被阅读0次

    该文章基于Android Studio 3.4.1,不保证不同Android Studio版本能正常兼容

    Android Studio可通过以下方式输出正式签名包:

    image.png

    通过此方式打包,打包完成后正式文件放在app/release目录,mapping文件放在app/build/outputs/mapping/release目录。查找起来相对麻烦并且每次重新打包这些文件都会被覆盖。因此需要能将这些文件拷贝到指定目录归档。

    在app/build.gradle添加以下代码即可实现打包完成后自动导出

    tasks.whenTaskAdded { task ->
        if (task.name.equalsIgnoreCase("assembleRelease")) {
            // 如果是assembleRelease任务,在最后执行导出apk以及mapping目录到指定目录
            task.doLast {
                outputReleaseFile()
            }
        }
    }
    
    void outputReleaseFile() {
        android.applicationVariants.all { variant ->
            // 如果是正式版打包
            if (variant.name.equalsIgnoreCase("release")) {
                File outputPath = new File("$rootDir" + File.separator + "release_app" + File.separator
                        + android.defaultConfig.versionName)
                println(String.format('拷贝生成文件到指定目录[%s]', outputPath.getAbsolutePath()))
                // 拷贝apk文件
                copy {
                    from variant.outputs[0].outputFile
                    into outputPath
                    // 重命名导出名称
                    rename {
                        'account_system' + variant.name + '_' + android.defaultConfig.versionName + ".apk"
                    }
                }
    
                // 拷贝mapping目录
                copy {
                    from variant.mappingFile.getParentFile()
                    into new File(outputPath, 'mapping')
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:gradle拷贝生成apk文件到指定目录

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