需求
flutter开发过程中不断有测试和同事询问开发进度或者缺陷修复情况,每次都需要临时打包,影响手头开发工作,如果电脑配置不高编译速度慢这个打断效果更甚。此时一个比较好的解决方案是在每天在一个电脑空闲的时间自动出包,安装包需要带有日期信息以便区分。这样每次有人来询问直接给包就行了。
技术点
- gradle打包配置,自定义生成apk名称;
- flutter打android apk的命令行实现;
- Windows系统设置定制任务;
gradle核心配置
android {
applicationVariants.all { v ->
if (v.buildType.name == 'release') {
v.outputs.all {
outputFileName = "app_V${v.versionName}+${v.versionCode}_${new Date().format("yyyyMMdd")}.apk"
}
}
}
}
脚本代码
@echo off
REM Help to build apk out of a plugin type flutter project.
REM The apk can be found under `example` directory.
cd /d %~dp0
set pdir=%cd%
pushd %pdir%\example\android
set buildApk=%cd%\gradlew :app:assembleRelease
call %buildApk%
popd
REM move apk to example dir so that it won't be deleted during next build.
REM the output apk location is: example\build\app\outputs\apk\release\*.apk.
set rdir=%pdir%\example\build\app\outputs\apk\release
for /r %rdir% %%i in (*.apk) do move %%i %pdir%\example\%%~ni%%~xi
定时执行脚本
-
Win+R键,输入compmgmt.msc,调出计算机管理界面
-
点击左侧【系统工具】>【任务计划程序】,找到右侧【创建基本任务】
-
输入任务名称和描述信息
-
设置触发器为每天
-
设置触发时间为每天凌晨2点
-
设置执行操作为【启动程序】
-
选择我们创建的执行脚本
-
完成