uniapp-cloud-build:自动化 uni-app 云打包,解放你的双手

📅 2026/7/30 12:42:33
uniapp-cloud-build:自动化 uni-app 云打包,解放你的双手
前言作为一名 uni-app 开发者你是否经历过这些痛苦每次打 APK 包都要打开 HBuilderX切到发行菜单点半天按钮团队协作时每个人的 Android 签名、SDK 配置各不一样打包环境一团乱CI/CD 流水线想集成自动打包却发现官方云打包有限制离线打包又要在每台机器上装 Android Studio换了台电脑又要重装 JDK、Android SDK、Gradle 一大堆工具链如果你有以上任一痛点那这个项目就是为你准备的。uniapp-cloud-build是一个开源的 uni-app APK 云打包平台——只需上传源码或 IR 包在 Web 界面上点几下鼠标APK 就自动打好了。全程无需 Android Studio工具链自包含不污染系统环境。GitHub 地址https://github.com/zimoyin/uniapp-cloud-build开源免费欢迎 Star项目定位一句话说清楚uni-app APK 离线云打包的 Web 管理平台——把你的打包环境搬上浏览器让团队所有人都能用同一套环境、同一套配置来打包彻底告别我这能打你那不行的玄学问题。核心功能1. 云端打包告别本地环境支持两种输入方式源码模式直接上传 uni-app 项目的src/目录IR 包模式上传 HBuilderX 发行菜单生成的本地打包 App 资源包__UNI__xxxxx目录打个 zip平台会自动完成 8 阶段构建流水线上传源码/IR → 校验 Manifest → 环境检测 → 创建工作空间 → 部署资源 → 同步插件 → 写入工程配置 → Gradle 编译 → 收集 APK2. 自包含工具链零环境依赖这是本项目最大的亮点。跑这个服务你只需要一个 JDK 17其余的全部自动搞定工具自动管理方式JDK 17/21自动下载到./cache/jdk/构建时按需选用Android SDK自动下载 API 21~36 任意版本到./cache/android-sdk/Gradle自动下载 6.3~8.12 任意版本到./cache/gradle/UniApp SDKWeb 界面手动上传离线包到./cache/sdk/支持版本管理换一台机器部署直接把整个项目目录拷过去一行java -jar就起来了不用装任何东西。3. Web 管理界面开箱即用浏览器打开http://localhost:8080注册即用。你可以管理多个应用——每个应用独立的工作空间和构建历史配置签名——上传 keystore自动写入 signingConfig管理 SDK 模块——勾选地图、推送、支付等 20 UniApp SDK 模块自动注入 Android 权限和硬件特性声明上传插件——按应用上传.aar/.jar/.zip原生插件触发构建——选择 JDK 版本、Gradle 版本、Android API 版本一键开始下载 APK——构建完成后浏览器直接下载4. 多用户系统团队协作利器内置完整的用户体系注册/登录——每个人有自己的独立工作空间三级角色——普通用户、管理员、超级管理员权限分明构建历史——每个人的构建记录、日志、产物可追溯团队里只要部署一台服务器所有人都能用浏览器打包再也不用各自折腾环境。5. CI/CD 友好一行脚本接入流水线平台提供云端脚本功能——在 Web 界面生成嵌入 Token 的 Shell/Batch 脚本直接放进你的 CI/CD 流水线里# 登录获取 Tokencurl-XPOST http://your-server:8080/api/auth/login\-HContent-Type: application/json\-d{username:ci-bot,password:xxx,fingerprint:ci}# 触发构建curl-XPOST http://your-server:8080/api/v1/build/team/app1/build\-HAuthorization: Bearer token\-Ffileproject.zip\-Fconfig{compileSdk:35,gradleVersion:8.11.1}# 下载 APKcurl-Ohttp://your-server:8080/api/v1/download/taskId\-HAuthorization: Bearer token支持 WebSocket 实时推送构建日志你可以看到每一行 Gradle 输出就像在本地打包一样。6. 20 SDK 模块自动权限映射内置 UniApp SDK 模块识别引擎根据manifest.json中的模块名自动注入 Android 权限模块自动配置地图 (Maps)ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATION相机 (Camera)CAMERA推送 (Push)各厂商推送权限 Receiver支付 (Payment)微信/支付宝相关权限蓝牙 (Bluetooth)BLUETOOTH,BLUETOOTH_ADMIN…共 20 模块自动配置不需要再手写 AndroidManifest.xml 里的权限声明了。技术架构┌──────────────────────────────────────────────┐ │ Browser │ │ (Web UI Swagger API Docs) │ └──────────────────┬───────────────────────────┘ │ HTTP / WebSocket ┌──────────────────▼───────────────────────────┐ │ Spring Boot 3.4.5 │ │ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │ │ Auth │ │ Build │ │ Toolchain │ │ │ │ Controller│ │ Controller│ │ Controllers │ │ │ └────┬─────┘ └────┬─────┘ └──────┬───────┘ │ │ │ │ │ │ │ ┌────▼─────────────▼───────────────▼───────┐ │ │ │ BuildPipeline │ │ │ │ (8-phase: Validate → Collect APK) │ │ │ └────────────────┬────────────────────────┘ │ │ │ │ │ ┌────────────────▼────────────────────────┐ │ │ │ Toolchain Manager │ │ │ │ JDK | Android SDK | Gradle | UniApp SDK │ │ │ └─────────────────────────────────────────┘ │ └──────────────────┬───────────────────────────┘ │ ┌──────────────────▼───────────────────────────┐ │ File System │ │ cache/jdk/ cache/android-sdk/ │ │ cache/gradle/ cache/sdk/ cache/plugins/ │ │ cache/pkg/{user}/{app}/ │ └──────────────────────────────────────────────┘技术选型层面技术说明语言Kotlin 2.3.21简洁、安全、与 Java 完美互操作框架Spring Boot 3.4.5企业级后端框架安全Spring Security无状态 Bearer Token 认证实时通信Spring WebSocket构建日志实时推送并发Kotlin 协程 虚拟线程高并发构建任务API 文档springdoc-openapiSwagger UI 自动生成构建工具Gradle Kotlin DSL项目自身构建含 WrapperJVM 目标JDK 17兼容 JDK 25 源码编译62 个 Kotlin 源文件架构清晰controller/— 10 个 REST 控制器认证、构建、JDK、Gradle、Android SDK、UniApp SDK、插件、下载、管理、系统service/— 13 个服务类核心业务逻辑pkg/phase/— 8 个构建阶段管道模式设计model/— 数据传输对象和领域模型config/— Spring 安全、异步、WebSocket、定时清理等配置快速开始环境要求只需要 JDK 17其余全部自动下载。三步跑起来# 1. 克隆项目gitclone https://github.com/zimoyin/uniapp-cloud-build.gitcduniapp-cloud-build# 2. 启动服务Linux/macOSchmodx gradlew ./gradlew bootRun# Windowsgradlew.bat bootRun浏览器打开http://localhost:8080注册账号上传 UniApp SDK 离线包然后就可以开始打包了。JAR 部署# 打包./gradlew bootJar# 前台运行java-Xms512m-Xmx512m-jarbuild/libs/uniapp-apk-builder-1.0.0.jar# 后台运行Linuxshapp.sh start-d环境变量按需配置变量默认值说明APP_PORT8080服务端口WORKSPACE_ROOT./cache缓存与工作空间根目录GRADLE_MIRRORmirrors.cloud.tencent.com/gradleGradle 下载镜像国内加速AES_KEY随机生成配置加密密钥LOG_DIR./cache/logs日志目录使用流程详解Step 1上传 UniApp SDK首先需要上传一个 UniApp 离线 SDK 包。去 DCloud 官方下载 Android 离线 SDK在 Web 界面的UniApp SDK 管理页面上传并命名版本。Step 2创建应用在 Web 界面创建一个应用填写包名、应用名等基本信息。Step 3配置签名上传你的 keystore 文件填写别名和密码。平台会自动在构建时配置签名。Step 4上传代码将你的 uni-app 项目源码src/目录打包成 zip或使用 HBuilderX 发行菜单生成 IR 包后打包成 zip上传到应用中。Step 5选择 SDK 模块勾选你的应用用到的 UniApp 模块地图、推送、支付等平台会自动处理 Android 权限和依赖。Step 6开始构建选择构建参数JDK 版本、Gradle 版本、Android API 版本点击开始构建。构建日志通过 WebSocket 实时显示。Step 7下载 APK构建完成后在构建历史中直接下载 APK。为什么要用这个项目对比官方云打包维度DCloud 官方云打包uniapp-cloud-build打包次数有限制免费套餐每日限量无限制构建速度排队等待本地/内网即点即打离线环境不支持支持局域网部署数据安全代码上传到第三方服务器数据完全在自己手里SDK 版本跟随官方更新自由选择/管理版本对比手动离线打包维度手动离线打包uniapp-cloud-build环境搭建装 JDK Android Studio SDK Gradle一键部署团队协作每人自己搭环境配置不一致统一环境Web 操作CI/CD需要在每台 CI 机器上装全套工具一行 curl 搞定新人上手半天起步打开浏览器就行适用场景个人开发者——再也不用打开 HBuilderX 点半天按钮了浏览器即打包小团队——部署在内网服务器上所有人共用一套打包环境CI/CD 集成——结合 Jenkins / GitHub Actions / GitLab CI代码提交自动出包企业内网——代码不出内网安全合规多项目多版本管理——不同项目可以绑定不同版本的 UniApp SDK互不干扰未来规划支持 uni-app cli 源码打包支持 uni-app x (Kotlin 原生) 打包支持 iOS IPA 打包需 macOS 构建机Docker 一键部署镜像构建队列与优先级调度Webhook 通知前端界面重构结语这个项目的初心很简单让 uni-app 打包这件事变得像呼吸一样自然。作为 uni-app 开发者我们不应该把时间花在折腾打包环境上。写代码才是我们的核心价值。把打包交给平台把精力还给开发。如果你觉得这个项目有用欢迎 Star、Fork、提 Issue、提 PR。也欢迎在评论区交流你的打包故事和需求。GitHub: https://github.com/zimoyin/uniapp-cloud-build