Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
98b2cb98
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
98b2cb98
编写于
11月 21, 2024
作者:
辛宝Otto
🥊
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 补充证书签名等操作提示
上级
fccd2895
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
70 addition
and
54 deletion
+70
-54
docs/tutorial/mp-harmony/intro.md
docs/tutorial/mp-harmony/intro.md
+70
-54
未找到文件。
docs/tutorial/mp-harmony/intro.md
浏览文件 @
98b2cb98
...
...
@@ -2,10 +2,14 @@
从
`HBuilderX 4.34`
版本开始,uni-app 支持
**鸿蒙元服务**
平台应用开发。
目前仅支持 Vue3 项目编译到鸿蒙元服务平台,Vue2 项目升级 Vue3 项目请参考:
[
Vue2 项目迁移到 Vue3
](
../migration-to-vue3.md
)
欢迎加入
[
uni-app鸿蒙化技术交流群
](
https://im.dcloud.net.cn/#/?joinGroup=668685db8185e1e6e7b7b15e
)
进行交流。
::: warning 注意
-
目前仅支持 Vue3 项目编译到鸿蒙元服务平台,Vue2 项目升级 Vue3 项目请参考:
[
Vue2 项目迁移到 Vue3
](
../migration-to-vue3.md
)
。
-
目前仅支持鸿蒙真机,鸿蒙模拟器暂不支持,后续鸿蒙模拟器支持后会更新文档。
:::
## 前置准备
### 开发环境准备
...
...
@@ -13,83 +17,98 @@
-
HBuilderX 4.34+
[
下载地址
](
https://www.dcloud.io/hbuilderx.html
)
-
DevEco-Studio 5.0.5.200+
[
下载地址
](
https://developer.huawei.com/consumer/cn/download/
)
###
鸿蒙新手指引
###
元服务 appid 注册@register-app-id
初次编译运行元服务,需要提前配置好证书签名、权限设置等信息,对第一次参与鸿蒙开发的新手不够友好,请仔细阅读下面相关建议,否则会阻塞开发体验元服务
。
元服务的开发和上架需要使用元服务的包名 BundleName,包名的形式
`com.atomicservice.[你的 APPID]`
。
如果
你已经参与鸿蒙开发,证书签名、权限配置会比较熟悉,配置过程可以参考
[
uni-app 开发鸿蒙应用环境要求
](
../harmony/runbuild
)
进行环境配置
。
如果
还没有创建元服务,访问
[
华为 AppGallery Connect
](
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/myApp
)
完成元服务应用的注册,得到相关包名。方便进行签名证书的操作
。
###
# 新建鸿蒙元服务原生项目
###
准备签名证书
如果你是第一次接触鸿蒙开发,你可以参考上述帮助文档进行学习,并动手创建鸿蒙元服务原生项目,完成相关配置
。
初次运行元服务,需要配置好证书签名、权限设置等信息,第一次参与鸿蒙开发的新手请仔细阅读下面相关建议,否则可能会影响开发元服务
。
打开 DevEco Studio 编辑器,选择
`新建工程 - 元服务 AtomService - Empty Ability`
,选择已注册好的 AppID,创建鸿蒙元服务示例(下面称原生工程)。并在编辑器的右上角完成自动签名。这种自动签名的方式只能用于运行与调试,需要发行上架时候请参考
**发行与上架**
章节修改签名文件
。
如果你已经参与鸿蒙 App 开发,证书签名、权限配置会比较相似,配置过程可以参考
[
证书签名配置指南
](
../harmony/runbuild#connectmobile
)
进行环境配置
。
![](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/7eeda96c-4fc1-45d3-816b-2e23806d2e36.png
)
签名证书分成两类:
如果可以在模拟器、鸿蒙真机运行 DevEco Studio 提供的官方 Hello World 示例(下面称原生工程),说明相关环境、证书配置完成。
-
面向一台鸿蒙设备的自动签名证书。比较简单,不能用于上架。
-
面向企业级协作的调试、发行证书。统一管理设备注册、权限管理等,调试证书可以用于开发,发行证书可以用于上架。
请留意下面两个文件比较特殊,后续 HBuilderX 编译运行需要这些文件
。
接下来文档会面向新手,详细介绍如何使用自动签名证书。发行证书会在文档下方的
**发行与上架**
部分进行介绍
。
#### build-profile.json5
建议用户动手使用 DevEco Studio 编辑器创建元服务的原生项目(下面称原生工程),完成相关配置,以保证开发环境配置正确。
证书签名的文件。位置在根目录
`build-profile.json5`
,后续元服务的开发运行、发布上架依赖此文件。
打开 DevEco Studio 编辑器,选择
`新建工程 - 元服务 AtomService - Empty Ability`
,下面的截图来自 DevEco Studio:
#### module.json5
![
选择元服务 AtomService
](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/6cf884be-d067-4fed-b3df-23ad74dcbc39.png
)
项目权限配置、metadata 信息配置。文件位置
`entry/src/main/module.json5`
,元服务设置权限,比如访问网络、位置定位、手机震动等功能依赖此文件
。
选择
[
已注册好的 AppID
](
#register-app-id
)
,创建鸿蒙元服务示例(下面称原生工程)
。
### 元服务 appid 注册
![](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/2e011c35-932c-48bf-9d06-0a93a1885259.png
)
元服务的开发和上架需要使用元服务的包名 BundleName,包名的形式
`com.atomicservice.[你的 APPID]`
。
在编辑器的右上角点击
`Project Structure...`
图标,勾选自动签名 Automatically generate signature。
![](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/7eeda96c-4fc1-45d3-816b-2e23806d2e36.png
)
注意:
-
也可以通过
`File - Project Stucture...`
打开。
-
这种自动签名的方式只能用于运行与调试,需要发行上架时候请参考
**发行与上架**
章节修改签名文件。
-
签名操作需要连接鸿蒙真机设备。
这个时候点击
`Run - Run 'entry'`
或者编辑器顶部的小三角选择运行。如果可以运行成功官方的 Hello World 示例,说明相关环境、证书配置完成。
如果还没有创建元服务,访问
[
华为 AppGallery Connect
](
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/myApp
)
完成元服务应用的注册,得到相关包名
。
到这里前置工作就准备完成了。因为元服务还在开发迭代,下面补充相关注意事项
。
###
安装元服务依赖
###
补充:签名文件、权限配置文件位置
元服务在编译运行时,依赖
`@atomicservice/ascf-toolkit`
npm 包,请确保已全局安装成功,安装命令如下:
请留意原生工程的两个文件比较特殊,后续 HBuilderX 编译运行需要这些文件:
1.
根目录
`build-profile.json5`
- 证书签名参数等。后续元服务的开发运行、发布上架依赖此文件。
2.
`entry/src/main/module.json5`
- 项目权限配置、metadata 信息配置,元服务设置权限,比如访问网络、位置定位、手机震动等功能依赖此文件。
### 补充:主动安装元服务依赖
元服务在编译过程中,依赖鸿蒙提供的
`@atomicservice/ascf-toolkit`
npm 包,请确保已全局安装成功,安装命令如下:
```
shell
npm
install
-g
@atomicservice/ascf-toolkit
--registry
=
https://registry.npmmirror.com
```
这一步骤是为了规避下载 npm 失败
的情况
。
这一步骤是为了规避下载 npm 失败
,导致编译失败
。
### DevEco-Studio 5.0.5.200 临时修复错误
###
补充:
DevEco-Studio 5.0.5.200 临时修复错误
在 DevEco-Studio 5.0.5.200 版本中,运行元服务需要手动修改两个文件,后续等待 DevEco-Studio 修复此问题,在升级之前,目前需要手动修复。后续文档也会持续跟踪此问题。
首先打开 DevEco-Studio 安装目录。
#### 1. 修改 process-profile.js 文件
1.
修改 process-profile.js 文件,位置定位
`tools/hvigor/hvigor-ohos-plugin/src/tasks/process-profile.js`
位置定位
`tools/hvigor/hvigor-ohos-plugin/src/tasks/process-profile.js`
,
这是一个压缩混淆的文件,请备份后小心修改。
这是一个压缩混淆的文件,请备份后小心修改。
搜索
`e.module.dependencies=this._dependencies,`
替换为
`/* e.module.dependencies=this._dependencies, */`
搜索
`e.module.dependencies=this._dependencies,`
替换为
`/* e.module.dependencies=this._dependencies, */`
也就是手动注释这一行代码。
#### 2. 修改 task-service.js
2.
修改 task-service.js,位置定位
`tools/hvigor/hvigor-ohos-plugin/src/tasks/service/task-service.js`
位置定位
`tools/hvigor/hvigor-ohos-plugin/src/tasks/service/task-service.js`
,
这是一个压缩混淆的文件,请备份后小心修改。
这是一个压缩混淆的文件,请备份后小心修改。
搜索
```does not exist oh_modules.`);```
替换为
```does not exist oh_modules.`);if(!o){return;}```
搜索
```does not exist oh_modules.`);```
替换为
```does not exist oh_modules.`);if(!o){return;}```
也就是追加了一行
`if(!o){return;}`
代码。
修改完这两个文件,重启 DevEco 编辑器后生效。请注意这是临时兼容方案,后续
修复后 DevEco 会自动
解决。
修改完这两个文件,重启 DevEco 编辑器后生效。请注意这是临时兼容方案,后续
DevEco 会升级
解决。
## 运行与调试
在 HBuilderX 运行 uni-app 项目到元服务分成四个步骤:
1.
配置
`manifest.json`
文件
。
2.
配置
签名证书。
3.
配置
权限模版。
4.
项目启动
。
1.
配置
`manifest.json`
文件
2.
配置
`build-profile.json5`
3.
配置
`module.json5`
4.
项目启动
下面进行详细说明。
...
...
@@ -99,15 +118,13 @@ npm install -g @atomicservice/ascf-toolkit --registry=https://registry.npmmirror
![
配置 manifest.json 文件
](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/f7a94969-59d3-42ad-84be-adf5bcadcd54.png
)
### 2. 配置签名证书
项目运行到模拟器、真机需要配置签名证书。签名证书的配置和鸿蒙应用开发类似,请参考
[
鸿蒙证书签名配置指南
](
../harmony/runbuild.md#signature
)
进行证书签名。
### 2. 配置 `build-profile.json5`
项目根目录创建
`harmony-mp-configs/build-profile.json5`
文件,将元服务原生项目中的
`build-profile.json5`
文件内容复制。
需要配置签名证书,这里依赖
[
准备签名证书
](
#准备签名证书
)
部分。
项目根目录创建
`harmony-mp-configs/build-profile.json5`
文件,将元服务原生项目中的
`build-profile.json5`
文件内容复制。
![
配置签名证书
](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/6991974b-52d2-4bdc-85fa-d93887b887e8.png
)
### 3. 配置
权限模版
### 3. 配置
`module.json5`
鸿蒙元服务需要获取使用特定的能力,比如元服务登录、震动、获取网络状态等原生提供的能力,需要配置权限模版。
...
...
@@ -115,17 +132,16 @@ npm install -g @atomicservice/ascf-toolkit --registry=https://registry.npmmirror
![](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/1206d3f5-5789-4856-b1e3-3928e6c01995.png
)
具体的鸿蒙元服务权限列表可以参考
[
鸿蒙对所有应用开放的权限清单
](
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/permissions-for-all-V5
)
进行查询。
### 4. 运行鸿蒙元服务
选择
`运行 - 运行到小程序模拟器 - 鸿蒙元服务`
,在弹出的鸿蒙设置选择框中选择
模拟器或者
真机。
选择
`运行 - 运行到小程序模拟器 - 鸿蒙元服务`
,在弹出的鸿蒙设置选择框中选择
鸿蒙
真机。
![
运行鸿蒙元服务
](
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
)
![
选择模拟器
](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/dc3e7683-5d44-40a9-920f-80aec53330dc.png
)
构建流程完成后,控制台提示:
等待构建完成后,控制台提示:
> 安装成功
>
...
...
@@ -133,24 +149,26 @@ npm install -g @atomicservice/ascf-toolkit --registry=https://registry.npmmirror
>
> 运行成功
同时模拟器或者真机页面更新,即可进行元服务开发和运行。
同时真机页面更新,即可进行元服务开发和运行。
开发过程中遇到的问题,欢迎加入
[
uni-app鸿蒙化技术交流群
](
https://im.dcloud.net.cn/#/?joinGroup=668685db8185e1e6e7b7b15e
)
进行交流。
## 发行与上架
鸿蒙元服务的上架,依赖上一步骤
**运行与调试**
的运行
。
元服务上架需要授权 DCloud 作为服务商完成上架,这里介绍如何将元服务上架到鸿蒙应用市场
。
### 上架前置准备
注意:目前上架元服务,部分信息需要在鸿蒙元服务后台填写,访问
[
华为 AppGallery Connect 后台
](
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
)
,选择
**我的元服务**
,选择对应的元服务 - 编辑。
注意:目前上架元服务,部分
应用
信息需要在鸿蒙元服务后台填写,访问
[
华为 AppGallery Connect 后台
](
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/
)
,选择
**我的元服务**
,选择对应的元服务 - 编辑。
![](
https://web-ext-storage.dcloud.net.cn/uni-app/harmony/0cc21275-cb13-4a68-968b-24438a4b2d0d.png
)
需要填写 4 处资料:
1.
设置
`应用上架 - 应用信息 - 应用分类标签`
填写应用分类标签,是为了下一步的
内容分级做准备。
1.
设置
`应用上架 - 应用信息 - 应用分类标签`
填写应用分类标签,是为了下一步的内容分级做准备。
2.
填写
**内容分级**
表单。
3.
填写
**隐私声明**
。
4.
同意并勾选
`版权信息 - 免责函`
选项
4.
同意并勾选
`版权信息 - 免责函`
选项
。
填写完点击页面右上角的
**保存**
按钮,其他没有提到的数据无需填写,这一步骤作用是填写上架所需的特定数据。
...
...
@@ -209,8 +227,6 @@ npm install -g @atomicservice/ascf-toolkit --registry=https://registry.npmmirror
表单会默认填写部分元服务信息,请务必确定完成了
**上架前置准备**
要求内容。填写完成后选择
**提交审核**
按钮。
## 注意事项
### 发布报错 `hvigor ERROR: Invalid storeFile value. Make sure it is not null or empty. The file must be included`
...
...
@@ -254,4 +270,4 @@ Map 和相关定位需要 [华为AppGallery Connect 后台](https://developer.hu
### 运行报错 `failed to install bundle. code:9568296 error: install failed due to error bundle type`
模拟器或者真机上已经安装了当前 BundleName 的应用。可能是证书复用导致的错误,重新确认当前证书是元服务证书,而不是鸿蒙
应用
的证书。
模拟器或者真机上已经安装了当前 BundleName 的应用。可能是证书复用导致的错误,重新确认当前证书是元服务证书,而不是鸿蒙
App
的证书。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录