guoyu/fronted_uniapp/【重要】两种打包方式的区别.md

145 lines
3.6 KiB
Markdown
Raw Normal View History

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