在Windows上构建自动化App打包脚本,从此告别手动发包

75 阅读3分钟

一、准备工作

  1. 环境配置

    • 安装 Git for Windows

    • 安装 JDK 8+

    • 配置Java环境变量,已配置请忽略,AS自带Java环境,基本都可以忽略此项:

      JAVA_HOME=C:\Program Files\Java\jdk-1.8
      PATH=%JAVA_HOME%\bin;C:\Program Files\Git\bin
      
  2. 项目目录结构

    D:\AndroidProjects\MyApp\
    ├── .git/
    ├── app/
    │   └── build.gradle
    └── gradlew.bat
    

二、创建批处理脚本(.bat

在项目根目录下创建 auto_build.bat,内容如下:

@echo off
setlocal enabledelayedexpansion

:: 项目目录
set PROJECT_DIR=D:\AndroidProjects\MyApp
:: 日志文件路径
set LOG_FILE=%PROJECT_DIR%\auto_build_log.txt

:: 进入项目目录
cd /d %PROJECT_DIR% || (
    echo %date% %time% - 项目目录不存在 >> %LOG_FILE%
    exit /b 1
)

:: 拉取 master 分支最新代码
echo %date% %time% - 开始拉取 master 分支 >> %LOG_FILE%
git checkout master || (
    echo %date% %time% - 切换到 master 分支失败 >> %LOG_FILE%
    exit /b 1
)
git pull origin master || (
    echo %date% %time% - 拉取 master 分支失败 >> %LOG_FILE%
    exit /b 1
)

:: 切换到 domestic-test-app 分支并合并 master
echo %date% %time% - 开始合并 master 到 domestic-test-app >> %LOG_FILE%
git checkout domestic-test-app || (
    echo %date% %time% - 切换到 domestic-test-app 分支失败 >> %LOG_FILE%
    exit /b 1
)
git merge master || (
    echo %date% %time% - 合并 master 分支失败,请手动解决冲突 >> %LOG_FILE%
    exit /b 1
)

:: 执行打包命令
echo %date% %time% - 开始执行 assembleDebug 任务 >> %LOG_FILE%
call gradlew.bat assembleDebug || (
    echo %date% %time% - 打包失败 >> %LOG_FILE%
    exit /b 1
)

echo %date% %time% - 打包成功!APK 路径:%PROJECT_DIR%\app\build\outputs\apk\debug\ >> %LOG_FILE%
endlocal

三、配置 Windows 任务计划程序

  1. 打开任务计划程序

    • 按 Win + R,输入 taskschd.msc,回车。
  2. 创建任务

    • 点击 创建任务(不是 “创建基本任务”)。
  3. 常规选项卡

    • 名称AndroidAutoBuild
    • 安全选项:选择 无论用户是否登录都运行,并勾选 使用最高权限运行
  4. 触发器选项卡

    • 点击 新建,选择 每周
    • 设置:每周三,上午 9:00。
    • 勾选 启用
  5. 操作选项卡

    • 点击 新建,选择 启动程序
    • 程序或脚本:浏览选择 auto_build.bat 文件。
    • 起始于:填写项目根目录(如 D:\AndroidProjects\MyApp)。
  6. 条件选项卡

    • 勾选 唤醒计算机运行此任务(可选,防止电脑休眠导致任务不执行)。
  7. 设置选项卡

    • 勾选 允许任务按需运行
    • 其他选项保持默认。
  8. 保存任务

    • 点击 确定,输入 Windows 管理员密码(若有)。

四、测试任务

  1. 手动触发测试

    • 在任务计划程序中,右键点击 AndroidAutoBuild,选择 运行
    • 查看 auto_build_log.txt 日志,确认步骤是否执行成功。
  2. 检查 APK 输出

    • 打包成功后,APK 文件会生成在:

      D:\AndroidProjects\MyApp\app\build\outputs\apk\debug\
      

五、注意事项

  1. Git 凭证

    • 若 Git 仓库需要密码,建议配置 SSH 密钥或使用 Git Credential Manager 保存凭证。
  2. 合并冲突

    • 若 master 与 domestic-test-app 分支合并时出现冲突,脚本会失败并记录日志,需手动解决冲突后重新运行。
  3. Gradle 缓存

    • 若打包速度慢,可在 gradle.properties 中配置国内镜像:

      properties

      org.gradle.daemon=true
      org.gradle.configureondemand=true
      org.gradle.jvmargs=-Xmx4g -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
      
  4. 日志查看

    • 若任务执行失败,优先查看 auto_build_log.txt 和 Windows 事件查看器(eventvwr.msc)中的错误信息。