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