intro.md 8.1 KB
Newer Older
辛宝Otto's avatar
辛宝Otto 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# 概述

`HBuilderX 4.34` 版本开始,uni-app 支持 **鸿蒙元服务** 平台应用开发。

目前仅支持 Vue3 项目编译到鸿蒙元服务平台,Vue2 项目升级 Vue3 项目请参考:[vue2 项目迁移到 vue3](../migration-to-vue3.md)

欢迎加入 [uni-app鸿蒙化技术交流群](https://im.dcloud.net.cn/#/?joinGroup=668685db8185e1e6e7b7b15e) 进行交流。

## 前置准备

### 开发环境准备

- HBuilderX 4.34+ [下载地址](https://www.dcloud.io/hbuilderx.html)
- DevEco-Studio 5.0.5.200+ [下载地址](https://developer.huawei.com/consumer/cn/download/)

### 鸿蒙新手指引

鸿蒙元服务和鸿蒙应用开发流程相似,如果你是第一次安装鸿蒙 DevEco-Studio 和鸿蒙模拟器,可以参考 [uni-app 开发鸿蒙应用环境要求](../harmony/runbuild) 进行环境配置。

辛宝Otto's avatar
辛宝Otto 已提交
20
如果可以在模拟器、鸿蒙真机运行 DevEco Studio 提供的官方 Hello World 示例(下面称之为原生工程),说明相关环境、证书配置完成。此时原生工程的作用是自动创建证书、权限配置等信息。
辛宝Otto's avatar
辛宝Otto 已提交
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

### 元服务 appid 注册

元服务的开发和上架需要使用元服务的包名 BundleName,包名的形式 `com.atomicservice.[你的应用包名]`

如果还没有创建元服务,访问 [华为 AppGallery Connect](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/myApp) 完成元服务应用的注册,得到相关包名。

## 运行与调试

在 HBuilderX 运行 uni-app 项目到元服务分成四个步骤:

1. 配置 `manifest.json` 文件。
2. 配置签名证书。
3. 配置权限模版。
4. 项目启动。

下面进行详细说明。

### 1. 配置 manifest.json 文件

项目运行需要配置元服务包名,打开项目根目录的 `mainefest.json` 填写 `鸿蒙元服务配置 - 应用包名`,结构类似 `com.atomicservice.[你的应用包名]`

辛宝Otto's avatar
辛宝Otto 已提交
43
![配置 manifest.json 文件](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/f7a94969-59d3-42ad-84be-adf5bcadcd54.png)
辛宝Otto's avatar
辛宝Otto 已提交
44

辛宝Otto's avatar
辛宝Otto 已提交
45 46
### 2. 配置签名证书

辛宝Otto's avatar
辛宝Otto 已提交
47
项目运行到模拟器、真机需要配置签名证书。签名证书的配置和鸿蒙应用开发类似,请参考 [鸿蒙证书签名配置指南](../harmony/runbuild.md#signature) 进行证书签名。
辛宝Otto's avatar
辛宝Otto 已提交
48 49 50

项目根目录创建 `harmony-as-configs/build-profile.json5` 文件,将元服务原生项目中的 `build-profile.json5` 文件内容复制。

辛宝Otto's avatar
辛宝Otto 已提交
51 52
![配置签名证书](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/25329a0f-75bf-4812-8efc-3ada29e4ae23.png)

辛宝Otto's avatar
辛宝Otto 已提交
53 54 55 56 57 58
### 3. 配置权限模版

鸿蒙元服务需要获取使用特定的能力,比如元服务登录、震动、获取网络状态等原生提供的能力,需要配置权限模版。

项目根目录创建 `harmony-as-configs/entry/src/main/module.json5` 文件。将元服务原生项目中的 `entry/src/main/module.json5` 的内容复制填充。HBuilderX 在构建时候会识别替换相关文件。

辛宝Otto's avatar
辛宝Otto 已提交
59 60
![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/1206d3f5-5789-4856-b1e3-3928e6c01995.png)

辛宝Otto's avatar
辛宝Otto 已提交
61 62
具体的鸿蒙元服务权限列表可以参考 [鸿蒙对所有应用开放的权限清单](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-all-V5) 进行查询。

辛宝Otto's avatar
辛宝Otto 已提交
63
### 4. 运行鸿蒙元服务
辛宝Otto's avatar
辛宝Otto 已提交
64

辛宝Otto's avatar
辛宝Otto 已提交
65 66 67 68 69
选择 `运行 - 运行到小程序模拟器 - 鸿蒙元服务`,在弹出的鸿蒙设置选择框中选择模拟器或者真机。

![运行鸿蒙元服务](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/48d95bfd-418d-4dfd-8715-b03c8d9841f1.png)

![选择模拟器](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/00014bd7-d578-4451-92d1-94f4cbbc52a3.png)
辛宝Otto's avatar
辛宝Otto 已提交
70

辛宝Otto's avatar
辛宝Otto 已提交
71 72 73 74 75 76 77 78 79
等待构建完成后,控制台提示:

> 安装成功
>
> 在鸿蒙设备上启动运行 .hap ...
>
> 运行成功

同时模拟器或者真机页面更新,即可进行元服务开发和运行。
辛宝Otto's avatar
辛宝Otto 已提交
80 81 82

## 发行与上架

辛宝Otto's avatar
辛宝Otto 已提交
83 84
鸿蒙元服务的上架,依赖上一步骤 **运行与调试** 的运行。

辛宝Otto's avatar
辛宝Otto 已提交
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
### 上架前置准备

注意:目前上架元服务,部分信息需要在鸿蒙元服务后台填写,访问 [华为 AppGallery Connect 后台](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/),选择 **我的元服务**,选择对应的元服务 - 编辑。

注意:如果编辑权限会置灰禁止编辑,你可能已经完成了 **授权 DCloud 完成上架流程**,需要参考文档下方 **注意事项** 临时解除授权。

![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/0cc21275-cb13-4a68-968b-24438a4b2d0d.png)

需要填写 3 处资料:

1. 设置 `应用上架 - 应用信息` 填写应用分类标签,是为了下一步的 内容分级做准备。
2. 填写 **内容分级** 表单。
3. 填写 **隐私声明**

这一步骤作用是填写上架所需的特定数据,填写完上述数据后点击页面右上角的 **保存** 按钮即可。

### 发行与上架步骤
辛宝Otto's avatar
辛宝Otto 已提交
102

辛宝Otto's avatar
辛宝Otto 已提交
103 104
在 HBuilderX 中开发 uni-app 上架到鸿蒙元服务需要下面 4 个步骤:

辛宝Otto's avatar
辛宝Otto 已提交
105
1. 授权 DCloud 完成上架流程。
辛宝Otto's avatar
辛宝Otto 已提交
106 107 108 109 110 111
2. 配置发行签名证书。
3. 应用打包。
4. 等待上架审批通知。

下面进行详细说明。

辛宝Otto's avatar
辛宝Otto 已提交
112 113 114 115 116 117 118 119 120 121 122 123 124 125
### 1. 授权 DCloud 完成上架流程

点击 [鸿蒙第三方授权链接](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/authorization?clientId=1553077832379297600&type=1) 打开下面页面:

第一步:

![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/f4f354d9-bfe0-4a75-aaa5-65ca66882316.png)

第二步:

![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/fd9c19a8-40e5-482f-a94c-b527cd8952f8.png)

选择你要上架的元服务,授权 DCloud 完成后续的上架流程。

辛宝Otto's avatar
辛宝Otto 已提交
126
### 2. 配置发行签名证书
辛宝Otto's avatar
辛宝Otto 已提交
127 128 129

开发调试期间的证书不可用于应用上架。元服务发布证书的申请流程和鸿蒙应用开发类似,访问 [鸿蒙发布元服务文档](https://developer.huawei.com/consumer/cn/doc/app/agc-help-harmonyos-releaseservice-0000001946273965) 进行发布证书的获取。

辛宝Otto's avatar
辛宝Otto 已提交
130 131 132 133 134 135 136 137 138 139 140
调整 `harmony-as-configs/build-profile.json5`

1. 补充 `app.signingConfigs` 字段,添加发布证书相关信息
2. 补充 `app.products` 字段,添加 name 为 `release` 的字段
3. 调整 `modules[0].targets[0].applyToProducts` 添加 `release` 字段

![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/2e8f1326-8b1a-49af-ba8e-6b9db3b7b212.png)

### 3. 应用打包

在 HBuilderX 中选择 `发行 - 鸿蒙元服务`,进行元服务打包。等待打包完成,会提示上传完成。接下来到 DCloud开发者中心完善上架资料。
辛宝Otto's avatar
辛宝Otto 已提交
141

辛宝Otto's avatar
辛宝Otto 已提交
142
![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/506b5153-ec4b-4d8b-93ac-df1ac42de2f5.png)
辛宝Otto's avatar
辛宝Otto 已提交
143

辛宝Otto's avatar
辛宝Otto 已提交
144
### 4. 完善上架资料
辛宝Otto's avatar
辛宝Otto 已提交
145

辛宝Otto's avatar
辛宝Otto 已提交
146
在上个步骤中,控制台在上传完成之后,提示打开 [DCloud 开发者中心](https://dev.dcloud.net.cn),选择 `应用管理 - 我的应用 - 选择项目 APPID`,进入项目详情,选择 **各平台信息**,打开下面截图的页面,选择 **发布** 按钮。
辛宝Otto's avatar
辛宝Otto 已提交
147

辛宝Otto's avatar
辛宝Otto 已提交
148
![](https://web-ext-storage.dcloud.net.cn/uni-app/harmony/0dba9aa1-1a5f-4fea-86b0-35f7c9e691bd.png)
辛宝Otto's avatar
辛宝Otto 已提交
149

辛宝Otto's avatar
辛宝Otto 已提交
150
表单会默认填写部分元服务信息,请务必确定完成了 **上架前置准备** 要求内容。填写完成后选择 **提交审核** 按钮。
辛宝Otto's avatar
辛宝Otto 已提交
151 152 153 154 155 156

## 注意事项

### 如何解除 DCloud 的应用授权服务?

解除授权可能会导致应用不能正常运行。如果要确认取消 DCloud 应用授权,访问 [AppGallery Connect 后台](https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/),打开 **用户与访问** 页面,依次选择 `第三方授权管理 - 应用授权`,可以看到当前授权应用的列表,选择要解除授权的应用,选择 **解除授权** 即可。
辛宝Otto's avatar
辛宝Otto 已提交
157 158 159

### 发布报错 `hvigor ERROR: Invalid storeFile value. Make sure it is not null or empty. The file must be included`

辛宝Otto's avatar
辛宝Otto 已提交
160
如果发生在应用运行、发行阶段。可能是构建时候证书缺少或者配置不对。参考 [鸿蒙发布元服务](https://developer.huawei.com/consumer/cn/doc/app/agc-help-harmonyos-releaseservice-0000001946273965) 进行证书申请。
辛宝Otto's avatar
辛宝Otto 已提交
161

辛宝Otto's avatar
辛宝Otto 已提交
162 163
### 发行报错 hvigor ERROR: Unable to find the product 'release'.

辛宝Otto's avatar
辛宝Otto 已提交
164
如果是发生应用发行阶段,可能是未填写完整的发布证书,需要调整 `build-profile.json5`
辛宝Otto's avatar
辛宝Otto 已提交
165