更新记录

1.0.0(2026-06-16) 下载此版本

首个正式版本。

功能

  • 多项目管理:支持新增、编辑、删除项目配置,每个项目独立保存包名、AppKey、证书
  • 正式 / 测试双配置:每个项目可分别配置 Release 和 Debug 两套包名、AppKey、签名证书
  • 模块自动识别:从 manifest.json 的 app-plus.modulesdistribute.sdkConfigs 自动识别所需原生模块,不需要手动勾选
  • 自动生成打包资源:打包前可勾选「打包前先生成资源」,自动触发 HBuilderX 编译前端资源
  • 自定义基座打包:Debug 模式自动设置 dcloud_control.xml 的 debug/syncDebug 属性,复制 debug-server-release.aar,追加 fastjson/okhttp3/zip4j 依赖,支持 HBuilderX 真机调试
  • 正式发布包打包:Release 模式编译签名 APK,可自动复制到项目 unpackage/release/apk/
  • 打包时实时从 manifest.json 读取版本号,与项目保持同步
  • SDK 版本检测:对比本地与 DCloud 官网最新版本,提供百度云 / 和彩云下载链接
  • JDK 路径配置:打包时注入 JAVA_HOME,解决 Gradle 版本与系统 Java 不匹配的问题
  • 配置存储在用户目录 ~/.aw-easy-pack/config.json
  • 支持的模块:SQLite、指纹、蓝牙、iBeacon、通讯录、直播推流、语音识别、人脸识别、X5 内核、微信/QQ/微博分享与登录、微信/支付宝/PayPal/Stripe/Google 支付、UniPush/个推/FCM 推送、高德/百度地图、友盟/Google 统计等

平台兼容性

HbuilderX/cli最低兼容版本
3.6.0

HBuilderX插件通用注意事项

HBuilderX-2.7.12以下版本安装插件市场内的插件后,卸载时需手动卸载,详细教程参考:如何手动卸载插件


AW 离线打包工具

uni-app Android 离线打包的 HBuilderX 插件。把 Android Studio 工程 + 离线 SDK 的打包流程做成可视化操作,不用记 gradlew 命令,不用手动改配置文件。

为什么需要这个插件

uni-app 的云端打包每天有次数限制,自定义基座也受限于云打包的排队时间。离线打包(本地打包)没有这些限制,但操作步骤繁琐——同步资源、改包名、替换 AppKey、管理 aar 依赖、生成 dcloud_properties.xml、跑 gradlew……

这个插件把上述步骤封装成一键操作。选项目、选模式、点打包,剩下的自动完成。

环境要求

项目 要求
HBuilderX 3.6.0 及以上
Android Studio 用于初始化离线打包工程,首次配置后可不再打开
DCloud Android 离线 SDK 版本需与 HBuilderX 版本一致(重要)
JDK 推荐 JDK 17(Android Studio 自带的 jbr 即可)
Gradle 随离线 SDK 工程自带,无需单独安装

SDK 版本必须和 HBuilderX 版本对齐,否则打出来的基座运行时会报「SDK 版本不一致」。

前置准备

在用这个插件之前,需要先完成以下准备工作(一次性):

  1. 下载离线 SDK:从 DCloud 官网 下载 Android 离线 SDK,解压
  2. 导入 AS 工程:用 Android Studio 打开 SDK 中的 HBuilder-Integrate-AS 工程,等待 Gradle 同步完成
  3. (可选)在 HBuilderX 中打开你的 uni-app 项目,执行 发行 → 原生App-本地打包 → 生成本地打包资源;也可以在打包时勾选「打包前先生成资源」让插件自动触发

做完以上步骤后,再来配置本插件。

首次配置

通过菜单 工具 → AW离线打包 → AW全局设置 打开设置界面,填写以下内容:

配置项 说明 示例
SDK 工程目录 HBuilder-Integrate-AS 的路径 D:\SDK\HBuilder-Integrate-AS
SDK 完整库目录 离线 SDK 中的 SDK/libs 目录 D:\SDK\android-sdk\SDK\libs
APK 输出目录 打包后 APK 的存放位置 D:\apk-output
SDK 模块名 AS 工程中的模块名,一般不用改 simpleDemo
JDK 路径 Android Studio 的 jbr 目录,或独立 JDK D:\AndroidStudio\jbr

然后在 AW项目管理 中创建项目配置:

  • 选择项目目录后会自动读取 manifest.json 填充 AppID、应用名称
  • 每个项目支持 正式(Release)测试(Debug) 两套配置
  • 两套配置各自独立:包名、DCloud AppKey、签名证书
  • DCloud 开发者中心需要注册两个应用(包名不同 → AppKey 不同)

使用方式

打包

菜单 工具 → AW离线打包 → AW离线打包,或在工作区右键 → AW离线打包

打包表单中需要选择:

  • 打包项目:选择已配置的项目
  • 打包模式
    • 正式发布包:编译 Release APK,用于上架或分发
    • 自定义基座:编译 Debug APK,可替换到项目 unpackage/debug/android_debug.apk,在 HBuilderX 中选择自定义基座运行即可调试
  • 输出选项
    • 打包前先生成资源:自动触发 HBuilderX 编译前端资源(需要项目在 HBuilderX 中打开)
    • 替换项目自定义基座(Debug 模式):把 APK 复制到项目的 unpackage/debug/android_debug.apk
    • 复制到项目 unpackage/release(Release 模式):把 APK 复制到项目的 unpackage/release/apk/

模块不需要手动选择,插件会自动从 manifest.json 读取 app-plus.modulesdistribute.sdkConfigs,识别出需要的原生模块。

项目管理

菜单 工具 → AW离线打包 → AW项目管理

支持新增、编辑、删除项目配置。每个项目独立保存包名、AppKey、证书等信息。

SDK 版本检查

菜单 工具 → AW离线打包 → AW检查SDK更新

对比本地 SDK 与 DCloud 官网最新版本,提供百度云/和彩云下载链接。SDK 通过网盘分发,不支持自动下载。

插件做了什么

每次打包时,插件会自动执行以下操作:

步骤 操作
同步前端资源 unpackage/resources/{appId}/www 复制到 AS 工程的 assets/apps/{appId}/www
更新 dcloud_control.xml 写入 AppID、版本号;Debug 模式额外加 debug 属性
更新 build.gradle 替换包名、版本号、签名配置;Debug 模式追加调试依赖
更新 AndroidManifest.xml 替换 DCloud AppKey;添加调试所需属性
更新 strings.xml 替换应用名称
管理 libs 目录 按需复制核心库 aar + 项目用到的模块 aar;Debug 模式额外复制调试库
生成 dcloud_properties.xml 声明 features 和 services,按实际模块按需生成
编译 APK 执行 gradlew assembleDebug/assembleRelease

配置文件位置

配置存储在用户主目录 ~/.aw-easy-pack/config.json,卸载插件不会删除配置。

支持的原生模块

插件内置了 DCloud 离线 SDK 常用模块的映射关系,从 manifest.json 自动识别:

  • 支付:微信、支付宝、PayPal、Stripe、Google
  • 登录:微信、QQ、微博、一键登录、Google、Facebook
  • 分享:微信、QQ、微博
  • 推送:UniPush、个推、FCM
  • 地图:高德、百度
  • 统计:友盟、Google
  • 其他:SQLite、指纹、蓝牙、iBeacon、通讯录、直播推流、语音识别、人脸识别、X5 内核等

如果项目用了映射表中没有的模块,打包时会显示「未识别」提示,但核心功能不受影响。

常见问题

Q: 打包时报「SDK 版本不一致」? A: 离线 SDK 的版本号必须和 HBuilderX 的版本号对齐。比如 HBuilderX 是 5.07,SDK 也必须是 5.07 对应的版本。

Q: 打包时报 gradlew 命令找不到? A: 确认 SDK 工程目录下有 gradlew.bat(Windows)。如果用 Android Studio 打开过工程,Gradle wrapper 会自动生成。

Q: 编译失败提示 Java 版本问题? A: Gradle 8.x 需要 JDK 17。在全局设置中配置 JDK 路径为 Android Studio 的 jbr 目录,插件会把它设为 JAVA_HOME。

Q: 自定义基座运行白屏 / 无法调试? A: 检查离线 SDK 的 SDK/libs 目录下是否有 debug-server-release.aar 文件。这个文件是调试通信必需的。

Q: 每次 release 打包后 build.gradle 里有调试依赖残留? A: 插件在打包时会先清除这三个调试依赖再决定是否追加。如果手动改过 build.gradle 导致正则匹配不上,可以把 AS 工程 git 还原后重新打包。

命令列表

命令 说明
AW离线打包 主功能入口
AW项目管理 新增、编辑、删除项目配置
AW检查SDK更新 检测 DCloud 最新 SDK 版本
AW全局设置 配置 SDK 路径、输出目录、JDK 等

License

MIT

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议