最近有个项目,是开发鸿蒙APP,涉及到鸿蒙应用的打包和发布的流程,特此开个文章做一下介绍。
打包应用
鸿蒙应用主要通过DevEco Studio进行打包,打包后生成的是HAP文件 (HarmonyOS Application Package) ,最终上架时,还会将多个HAP文件打包成一个App Pack(.app后缀名的文件) 。

打包步骤:
1.安装官方最新版DevEco Studio,下载地址:https://developer.huawei.com/consumer/cn/deveco-studio/
2.配置sdk,顶部菜单选择File-Settings-HarmonyOS SDK,选择对应哪个HarmonyOS版本的SDK(需要提前下载好)。
3.检查Build配置,module.json5或build-profile.json5文件中,配置的bundleName需要与在华为开发者联盟注册的包名一致。
5.选择菜单File-Project Structure,在左侧选择Entry或Feature模块,打开签名配置。
6.在配置界面中,指定用于签名的Profile文件,对于Release版本,要用到在华为开发者联盟上申请的发布证书(.p12文件)和发布Profile (.p7b文件),这样才可以在应用市场上架。
7.在菜单栏选择Build-Build Haps(s)/App(s),开始生成应用。
8.在弹出的窗口中,对于Build Type(构建类型),可选择Release或Debug,Release是要上架的发布版本,Debug是测试版本。
9.然后选择要打包的模块,点击Finish,DevEco Studio将开始对应用进行编译、链接和打包。
打包完成后,HAP文件会保存到项目目录下,一般是在项目/模块名/build/outputs/hap/下。

发布应用
在打包生成HAP文件后,需要通过华为开发者联盟提交到应用市场。
具体流程:
1.登录华为开发者联盟官网,进入控制台。
2.选择我的应用,然后点击新建应用,填写应用的基本信息。
3.上传HAP文件包,在应用详情页面,进入版本/发布管理页面。
4.将生成的Release版本的HAP文件上传到平台。
5.填写发布信息,包含应用基本信息、支持的设备类型、应用隐私政策的URL、要发布的市场(国家/地区)等信息。
6.提交审核。
提交审核后,华为应用市场会对上传的应用进行安全、功能和内容审核,审核通过后,应用就会在选择的市场中正式发布。
以上就是鸿蒙APP应用的打包流程和发布上架流程,关于鸿蒙应用的开发价格,可以参考《开发一个鸿蒙APP应用要多少钱?》。同时,在对鸿蒙应用的开发过程中,如果遇到了相关的技术问题,欢迎联系丁老师进行咨询和交流。
微信小程序可以实现文档的在线预览及保存本地下载,支持的格式有pdf/doc/xls/ppt等常用文档类型,如图:除了对办公文档进行预览,还可以进行转发、收藏、保存手机本地等其他操作。实现该功能的思路为,先用downloadFile下载文...
在使用uniapp开发的小程序内,打开图片,长按没有弹出菜单,无法扫码,此时只需在图片上加入show-menu-by-longpress即可完整代码:<image :src="picture" mode=&qu...
有同学在问,微信公众号,可以获取微信用户的手机号吗?答案是肯定的,当然可以!但是,因为现在越来越注重用户隐私以及数据收集,微信公众号是不能直接任意获取用户手机号的,获取用户的手机号码,也不是任意微信公众号都可以做到的,有一定的要求和限制...
在开发微信支付,和微信统一下单接口对接时,发现传递的fee_type参数只能设置为'CNY',无法设置为'USD'、'HKD'等其他货币。官方文档上对fee_type参数的描述,可以支持多...
1.composer版本更新文档版本号:https://getcomposer.org/download中文网:https://docs.phpcomposer.com/03-cli.html#self-update英文网:https://...
这个问题,用普通sql语句查询,好解决,把表的字符编码改为对应的就可以了。但在使用视图查询时,比如select'aaa'astypefromxxx;select*fromviewwheretype='aaa'...
没那么多废话,直接上修改方法public\assets\js\require-table.jspageSize: Config.pagesize || localStorage.getItem("pagesize") |...
在fastadmin中,一个页面的非菜单链接,想要点击后打开指定页面,并且菜单自动展开,该怎么实现呢?经过丁老师研究后,发现超级简单,废话不多说,直接上代码:<a class="btn-addtabs" href=...