当前位置: 首页 > news >正文

实用指南:uniapp x鸿蒙开发之运行到鸿蒙模拟器

运行和发行注意

uni-app x编译到鸿蒙运行在ArkTS引擎上,ArkTS在鸿蒙的ide deveco中没有热刷新。每次改动代码,需要重新build包、签名、安装新包到手机。

这与uni-app不同,uni-app基于js,可以热刷新。

所以uts的运行,要求在本地安装鸿蒙deveco,本地直接编译出包。既然本地可以出包,那么鸿蒙就没有做云打包。这也是和Android和iOS的云打包的区别。

uni-app 因运用jsvm,而鸿蒙模拟器自身在某些CPU上还未适配好jsvm,导致开发者采用模拟器受限。但uni-app x在鸿蒙模拟器运行不受限制。

HBuilderX自身给予了运行、日志、debug、发行、调试证书申请等全套功能,开发者安装deveco后,可以做到不启动deveco,在HBuilderX中完成所有开发。

证书和权限

  • 鸿蒙的证书和权限体系较复杂,和iOS类似。开发者需要在鸿蒙开发者官网仔细了解其证书和权限体系。

  • 如果运行到模拟器,是不需证书的

  • 运行到真机时,应该使用调试证书对应用进行签名后才能在指定的构建设备安装。

  • 证书中绑定了权限,假设变更权限,应该更新证书。调试证书还绑定了开发设备。

  • 对于不涉及受限权限的情况,在HBuilderX的运行界面中可以自助申请调试证书。

  • 鸿蒙的权限部署在harmony-config目录下,需要自行参考鸿蒙文档配置。且不支持根据使用的模块自动打包权限。比如使用了定位API,打包时并不会自动带上定位权限。需要自行配置好权限后再打包。

运行到鸿蒙模拟器

打开hbuilder x --运行--运行到手机或模拟器--运行到鸿蒙

首次运行会自动生成 harmony-configs 设置目录。

在鸿蒙运行部署中设置 DevEco Studio 的安装路径。

重新打开可能会出现安装【App真机运行(unapp x)】插件提示,按步骤安装即可

再次打开可能还会出现如下情况,按步骤启动模拟器即可:

启动鸿蒙模拟器

鸿蒙模拟器只能在 DevEco Studio 中启动。 在 DevEco Studio 中打开任意一个工程(也允许新建一个空项目),之后在下图的位置进入设备管理器:

假如没有登录华为账号,此时需要先登录,登录成功后看到如下页面

选择模拟器型号,选第一个即可

安装完模拟器后,点击启动按钮启动模拟器

返回上边步骤,点击Hbuilder x运行,就会出现如下页面,点击运行

如果运行时出现签名证书资料配备错误挑战,在【运行到鸿蒙】管理的【选择运行设备】对话框中,点击【部署调试证书】按钮,打开调整对话框:

配置完之后即可运行到鸿蒙模拟器

证书资料文件

需要设置的文件总共有三个:

  • 私钥库文件(.p12):里面保存着数字签名用的私钥,由开发者自己手动生成或者 DevEco Studio 自动申请调试证书时自动生成。有两层密码保护(私钥库密码和私钥密码),须妥善保管,尤其是发布证书的私钥一定不能泄露。

  • 证书材料(.cer):由华为签署颁发,用于证明开发者的身份。在 AppGallery Connect 手动申请并下载获得,或者在自动生成调试证书时自动下载。

  • 签名描述文件(.p7b):由华为颁发,里面具备了跟应用相关的签名信息,如包名、ACL 权限等,调试证书还包括可用于调试运行的设备列表。在 AppGallery Connect 手动添加并下载获得,或者在自动生成调试证书时自动下载。

如果已经在 AppGallery Connect 中手动申请过证书,则开发者手中应该已经掌握了所有的必备信息(三个文件,两个密码和一个私钥别名),填写到对话框中即完毕配置。 其中三个资料的位置如果位于 harmony-configs 目录里面,则会被处理为相对路径。

倘若是依据 DevEco Studio 自动申请的调试证书,在 build-profile.json5 文件里能找到完整的证书配置信息。 需注意的是,在保存那三个文件的目录里还应该有一个 material 子目录,它跟私钥库文件(.p12)和两个密码是配合运用的,如果想把私钥库文档移到别的地方去,这个 material 目录也要复制过去(否则密码将失效)。

关于证书配置可参考:https://blog.csdn.net/chensi_07/article/details/152043339?spm=1001.2014.3001.5501

http://www.jsqmd.com/news/3695/

相关文章:

  • Redis 监听过期Key - 指南
  • 11_Reactor网络模型
  • 「LNOI2022」盒
  • 【文摘随笔】从业开发工作五年后,再读短篇《孔乙己》——年少不懂孔乙己,长大已成孔乙己
  • 为什么我选择了 PSM 敏捷认证?
  • Hive SQL - INSERT
  • 编写msyql8.0.21 数据库批量备份脚本
  • 完整教程:基础算法---【差分】
  • Android 源码中如何生成一个platform JKS 文件?
  • 后端面试八股(go 方向)
  • ArcGIS 不重叠且无缝的拓扑检查和修改
  • C++设计模式之创建型模式:工厂方法模式(Factory Method) - 教程
  • 【铸网-2025】线下赛 web 详细题解
  • 2025/9/25
  • 读书笔记:揭开索引的两个常见误区
  • 国标GB28181平台EasyGBS如何赋能路网数字化管理与应急指挥?
  • 完整教程:Spring Boot 核心注解分类与应用指南
  • 分布式数据库迁移OceanBase——基于网易云音乐自研CDC服务的平滑迁移方案
  • 获取用户ip所在城市
  • 【Proteus仿真】AT89C51单片机串行数据转换为并行仿真 - 实践
  • 第13章 day14-15 Webpack逆向
  • Viper远程配置踩坑记录
  • 深入解析:JVM(六)-- StringTable
  • 国产智能体脂秤PCBA方案设计
  • 完整教程:JRE、JDK、JVM 及 JIT 之间有什么不同?
  • 第15章 day18 Ast系列篇
  • 微波雷达模块在智能家居中的具体应用案例有哪些?
  • Ubuntu 桌面快捷方式创建增加记录
  • arm64中的内存屏障指令
  • 三分