# 【重要】两种打包方式的区别 ## 问题说明 HBuilderX 有两个看起来相似但**完全不同**的打包入口,很容易混淆! --- ## ❌ 方式一:本地制作自定义基座(会失败) ### 入口位置: ``` 运行 → 运行到手机或模拟器 → 制作自定义调试基座(P) ``` ### 特点: - 📍 在 "运行" 菜单下 - 💻 使用本地编译 - ⚙️ 需要配置本地 Android SDK - ❌ 对于有第三方依赖的 UTS 插件会失败 ### 错误信息: ``` 找不到名称"vosk" uts插件[xwq-speech-to-text]编译失败 uni_module [xwq-speech-to-text] (Android) 存在三方依赖或资源引用 ``` ### 为什么会失败? 因为 Vosk 是第三方 Maven 依赖,本地编译环境找不到这个库。 --- ## ✅ 方式二:云端打包自定义基座(会成功) ### 入口位置: ``` 发行 → App–Android/iOS–云打包(P) → 勾选 "打包为自定义调试基座" ``` ### 特点: - 📍 在 "发行" 菜单下 - ☁️ 使用云端编译 - 🚀 不需要本地 Android SDK - ✅ 自动下载和编译所有第三方依赖 ### 成功标志: ``` [Speech] ========== 开始初始化语音模型 ========== [Speech] 模型加载成功 ``` ### 为什么会成功? 云端服务器会自动从 Maven 仓库下载 Vosk 库并编译。 --- ## 详细对比表 | 对比项 | 本地制作基座 | 云端打包基座 | |--------|------------|------------| | **菜单位置** | 运行 → 运行到手机或模拟器 | 发行 → 云打包 | | **编译位置** | 本地电脑 | DCloud 云端服务器 | | **需要本地SDK** | ✅ 必须配置 | ❌ 不需要 | | **处理第三方依赖** | ❌ 需要手动配置 | ✅ 自动下载 | | **Vosk 插件** | ❌ 编译失败 | ✅ 编译成功 | | **打包速度** | 快(如果环境配好) | 5-10 分钟 | | **适用场景** | 纯 UTS 插件,无第三方依赖 | 有第三方依赖的插件 ⭐ | | **推荐程度** | ⭐ | ⭐⭐⭐⭐⭐ | --- ## 正确的操作步骤 ### 第一步:打开云打包 ``` 发行 → App–Android/iOS–云打包(P) ``` **注意:** 是 "发行" 菜单,不是 "运行" 菜单! ### 第二步:配置打包参数 - ✅ 勾选 `Android` - ⭐ **勾选 "打包为自定义调试基座"** - 证书:选择 `DCloud 公共测试证书` ### 第三步:提交打包 - 点击 "打包" 按钮 - 等待 5-10 分钟 - 下载生成的 APK ### 第四步:安装基座 - 将 APK 安装到 Android 手机 ### 第五步:配置 HBuilderX ``` 运行 → 运行到手机或模拟器 → 运行配置 → 选择 "自定义调试基座" ``` ### 第六步:运行项目 - 现在运行项目不会再本地编译 - 直接使用基座中已编译好的插件 - 语音识别功能正常工作 ✅ --- ## 常见误区 ### ❌ 误区 1:以为两个入口是一样的 **真相:** 完全不同!一个本地编译,一个云端编译。 ### ❌ 误区 2:以为配置了 Android SDK 就能用本地编译 **真相:** 即使配置了 SDK,第三方依赖的下载和配置也很复杂,容易出错。 ### ❌ 误区 3:以为云打包只能打正式包 **真相:** 云打包可以打调试基座,只需勾选 "打包为自定义调试基座"。 --- ## 记忆技巧 ### 🎯 简单记忆法: **有第三方依赖的 UTS 插件 = 必须云端打包** ``` Vosk 插件(第三方依赖) ↓ 必须使用:发行 → 云打包 → 勾选"打包为自定义调试基座" ↓ 成功!✅ ``` --- ## 总结 对于 `xwq-speech-to-text` 这个依赖 Vosk 的插件: - ❌ 不要用:运行 → 制作自定义调试基座 - ✅ 必须用:发行 → 云打包 → 勾选"打包为自定义调试基座" 这是唯一能成功的方法!