本项目提供了一个开箱即用的 Docker 镜像,旨在简化并自动化 Uni-App 安卓原生离线打包 流程。通过将复杂的安卓编译环境容器化,您可以轻松地在任何开发或 CI/CD 环境中,实现稳定、可复现的应用打包。
这是最简单快捷的方式。
docker pull wlkjyy/uniapp-android-build:latest
如果您想自定义镜像内容(例如升级基础环境),可以从源码构建。
# 确保您已进入 build 目录
cd build
# 执行构建 (在 Apple Silicon Mac 上请务必带上 --platform 参数)
docker build --platform linux/amd64 -t wlkjyy/uniapp-android-build:latest -f Dockerfile .
本方案的核心思想是将 可变部分(Uni-App 资源、原生配置) 与 不变部分(安卓工程模板) 分离,通过 Docker 的卷挂载功能在容器内动态组合,完成打包。
在 HBuilderX 中,点击菜单栏 “发行” -> “原生App-本地打包” -> “生成本地打包App资源”。
-
复制 Uni-App 资源: 将上一步生成的资源文件夹(例如__UNI__XXXXXX)完整地复制到项目根目录下的 src/ 文件夹中。
-
自定义原生配置: 本项目已将所有需要自定义的文件抽离到 configuration/ 目录中,您可以在这里修改。如果你需要重载其他内容,直接复制到这个目录,通过挂载卷方式进行覆盖即可。
想了解每个配置项的详细作用,请参考 DCloud 官方文档。
在您的项目根目录下,运行以下命令。首次运行时会自动创建一个名为 output/ 的目录,用于存放最终生成的 APK 文件。
# 运行 Docker 容器进行打包
docker run --rm --platform linux/amd64 \
-v gradle_cache:/root/.gradle \
-v ./src:/workspace/android-project/simpleDemo/src/main/assets/apps \
-v ./output:/workspace/output \
-v ./configuration/AndroidManifest.xml:/workspace/android-project/simpleDemo/src/main/AndroidManifest.xml \
-v ./configuration/data:/workspace/android-project/simpleDemo/src/main/assets/data \
-v ./configuration/drawable:/workspace/android-project/simpleDemo/src/main/res/drawable \
-v ./configuration/simpledemo-build.gradle:/workspace/android-project/simpleDemo/build.gradle \
-v ./configuration/strings.xml:/workspace/android-project/simpleDemo/src/main/res/values/strings.xml \
-v ./configuration/test.jks:/workspace/android-project/simpleDemo/test.jks \
wlkjyy/uniapp-android-build:latest
打包成功后,您就可以在 output/ 目录下找到您的 APK 文件了!
- E-mail:wlkjyy@vip.qq.com

