个人觉得目录结构有些冗余,比如渠道包很多,批量打包后就变成了这样,加固、发送给运营人员不太方便:
网上各种修改路径的方法:
android {
android.applicationVariants.all { variant ->
variant.outputs.all {
variant.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/app/build/outputs/apk")
outputFileName = "leo_v${variant.versionName}${variant.productFlavors[0].name}_${variant.buildType.name}_${new Date().format("yyyyMMdd")}.apk"
}
}
}
}
emmm,确实有用的,但是这样我点击 run 按钮会报这个错,不知道其他人的电脑会不会这样:Google 了一会儿,参考这个帖子 https://stackoverflow.com/questions/46985530/change-apk-output-folder-in-gradle-4-1 ,改成了
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "../../leo_v${variant.versionName}${variant.productFlavors[0].name}_${variant.buildType.name}_${new Date().format("yyyyMMdd")}.apk"
}
}
OK 了,搞定!!
Tips
另外再分享个小技巧,一个打包的小脚本,比如我们公司的产品是乐偶云,命令行输入 leo ,脚本会一次运行 clean、build、打开文件浏览器,然后就可以直接把包发给测试小姐姐啦~~
- 打开终端,输入 open ~/.zshrc
- 在末尾添加
alias leo="/Users/name/Documents/MyProject;
../LeoMarketing/gradlew clean;
../LeoMarketing/gradlew assemble_testDebug;
open /Users/Documents/apk"
(/Users/name/Documents/MyProject 和 /Users/Documents/apk换成你的项目地址和打包的输出路径,是绝对地址)
- 保存,重启终端,输入 leo
【关键词】gradle4 打包 修改路径 outputFileName outputDirectory 无法运行 does not exist on disk