关于鸿蒙开发最近刚发现的一些事。

235 阅读4分钟

大家好,我是Townsend,这几天呢我一直在研究鸿蒙开发的一个最近刚发现的一个好玩的功能,也就是自己做一个三方应用市场并且在三方应用市场里去安装三方应用,关于这个功能真是搞得头都要炸了,下面所说的全是干货,千万不要错过。

OIP-C.jfif

1.首先是需要配置签名证书,这一块也是最繁琐但是也是最简单的地方,主打一个细心,错一步步步错,谈个恋爱都没这个细心,主打一个真爱。

!!!注意:配置证书前需要先安装签名工具:gitte.com/openharmony… ,包给不了直接去此链接下载,对还有一个点同时需要提前配置java环境或者C环境哦。

2.下面进入正题签名证书的配置:

(1)生成密钥对,keystorePwd为密钥库口令。 1.png (2)生成RootCA证书,subject为RootCA的证书主题,用于配置trusted_root_ca.json。

2.png (3)生成SubCA证书。

3.png (4)生成应用调试/发布证书,subject用于配置trusted_apps_sources.json中的app-signing-cert项。

4.png (5)生成ProfileCA证书,subject用于配置trusted_apps_sources.json中的issuer-ca项。

5.png (6)生成应用Release版profile调试/发布,subject用于配置trusted_apps_sources.json中的profile-signing-certificate项。

6.png (7)生成应用Debug版profile调试/发布,subject用于配置trusted_apps_sources.json中的profile--debuge-signing-certificate项。

7.png (8)将OpenHarmony-Tizi-app-cert.pem中第一部分的密钥,记得回车转换成\n字符,放入UnsgnedReleasedProfileTemPlate.json/UnsgnedDebugProfileTemPlate.json 中的distribution-certificate字段中,具体操作代码,直接按着操作即可哦。

(9)生成p7b签名证书。

9.png (10)hab应用包签名。

10.png

3.在安装应用前需要先将证书配置到真机上哦,不然无法安装应用。

(1)用数据线连接之后,先用hdc shell验证是否连接成功,连接成功之后通过 hcd file recv 将 trusted_root_ca.json和trusted_apps_sources.json和key_enable文件导出来,具体文件路径可以执行hdc shell之后直接执行ls查询手机里面系统文件的具体位置,导出来之后按着上面配置证书时所告知的配置方法配置好。

(2)注意:key_enable需要编译,编译完成之后将OpenHarmony-Tizi-rootCA.cer密钥信息处理后加入到文件。

(3)将修改好的文件最后通过hcd file send命令在推送到手机。

(4)修改好系统文件之后,最后在通过hdc reboot命令重启手机即可。

4.做完上面之后其实就可以正常通过hdc app install hap包名去安装应用市场的APP了。

5.上述了是做了一个三方应用市场的流程,为了校验是否可以在三方应用市场上安装需要按着上述的流程在去跑一套三方应用的签名以及系统配置文件。

6.昨晚上述之后到现在已经完成了一大半了哦,后续就是实现在三方应用市场安装三方应用的逻辑了。 (1)应用市场demo和三方应用demo其实可以简单地写,这样方便验证。

(2)首先在写逻辑之前需要先到openharmony数字化平台上去下载fullsdk因为需要系统接口哦,提前配置好sdk。

(3)配置好sdk之后直接到openharmony文档里面去搜索installer模块,里面有具体的代码逻辑,可以直接借鉴使用哦。

(4)需要注意的是目前官方只提供了安装和卸载的逻辑,下载的话直接将三方应用的hap包放到三方应用市场的本地目录即可,至于更新的话我这边是直接调用的覆盖安装,并做了数据存储,测试之后发现覆盖安装之后数据是正常保存的哦。

(5)还有一个工作就是因为系统接口需要一些权限,所以在此安装之前一定要把权限配置好,只需要在UnsgnedReleasedProfileTemPlate.json/UnsgnedDebugProfileTemPlate.json 和 IDE开发环境里面的mudle.json5里面配置相同的权限即可,还有就是app.json5里面的bundleName必须跟UnsgnedReleasedProfileTemPlate.json/UnsgnedDebugProfileTemPlate.json 里面的bundleName保持一直不然无法安装哦。

好了,码哥码弟码姐码妹们,先分享到这吧,继续去当牛马了,大家可以尝试一下,记得点点赞,支持原创!!!!!

v2-464d2c25fca7608ca4dfaaa26fab1dd8_r.jpg