【UniApp打包鸿蒙APP全流程】如何配置并添加UniApp API所需的鸿蒙系统权限

一、前言:为什么选择 UniApp 打包鸿蒙应用?

随着鸿蒙生态的快速发展,越来越多开发者希望将现有跨平台项目快速接入鸿蒙系统。而 UniApp 作为国内领先的跨平台开发框架,凭借其“一次开发,多端发布”的特性,成为接入鸿蒙(HarmonyOS)的理想选择。

本文将基于 Vue3 + UniApp 的项目架构,详细介绍如何通过 HBuilderX + DevEco Studio 联合打包,将项目发布为标准的鸿蒙应用(.hap 或 .app 包),并重点讲解如何为 UniApp 中使用的 API 添加对应的 鸿蒙系统权限(ohos.permission),确保功能正常运行。

二、开发环境准备

1. 基础工具
最好保证HBuilderX和DevEco Studio的版本都是最新的
HBuilderX(目前我使用的版本为4.75)
DevEco Studio(目前我使用的版本为5.0.5)
Node.js(16+)

2. 项目基础
使用 Vue3 语法开发的 UniApp 项目(底层必须使用vue3的语法,vue2不支持)

三、UniApp 项目打包为鸿蒙工程

步骤 1:在 HBuilderX 中生成鸿蒙工程
打开你的 UniApp 项目
点击菜单栏:运行 > 运行到手机或模拟器(N)> 运行到鸿蒙(H)
在这里插入图片描述
记得连接鸿蒙设备,并且配置调试证书(调试证书是支持自动生成的,开发阶段可以使用,打包发布时需要生成上线证书)
在这里插入图片描述
点击“自动申请调试证书”即可,调试证书会自动生成,注意应用包名,这个包名后续在华为开发者联盟-AppGallery Connect做应用分发的时候会用到,请认真命名!!!
在这里插入图片描述
点击“保存”后运行,HBuilderX 会生成一个标准的鸿蒙工程目录(通常为app-harmony)
在这里插入图片描述
⚠️ 注意:生成的工程是标准的 HarmonyOS 项目结构,包含 entry/、module.json5、resources 等。

四、使用 DevEco Studio 导入并构建鸿蒙应用

步骤 1:导入工程
打开 DevEco Studio
选择“Open an existing HarmonyOS project”
选择 HBuilderX 生成的鸿蒙工程目录
在这里插入图片描述
DevEco Studio汉化(安装汉化插件 Chinese(simplified)),打开项目右上角的设置图标,找到插件(Plugins),点击打开
在这里插入图片描述
在市场搜索Chinese(simplified)安装后重启即可
在这里插入图片描述

五、关键:为 UniApp API 添加鸿蒙系统权限

UniApp 在鸿蒙端运行时,部分 API 需要对应的 鸿蒙权限(ohos.permission) 才能正常使用。这些权限需在 module.json5 文件中声明。
可以参考uniapp提供的鸿蒙APP专题权限配置指南
在这里插入图片描述
在这里插入图片描述

六、做APP应用分发

1.首先打开华为开发者联盟点击AppGallery Connect,进行应用分发
如果是企业使用,建议先进行企业认证
在这里插入图片描述

点击“证书、APP ID和Profile”(我这里是旧版界面,可以切换成新版,新版界面与旧版界面的功能模块名称是一致的)
在这里插入图片描述
可以看我们已经有“调试证书”了,可以生成一个“发布证书”进行软件上架发布。
在这里插入图片描述

点击“新增证书”,证书类型选择“发布证书”,证书名称最好规范一些
在这里插入图片描述
这里还需要csr文件,回到DevEcostudio,在主菜单栏单击Build > Generate Key and CSR
在这里插入图片描述
没有密钥库文件,单击New进行创建
注意选择好“.p12”文件生成后存放的位置,后续还需要使用(可以创建一个harmony-configs的文件,后续所有的证书文件都可以生成到这个文件夹下)
在这里插入图片描述
在这里插入图片描述
选择已经生成好的文件,填写密码和别名,点击next
在这里插入图片描述

接着选择.csr文件生的位置,及填写csr文件生成之后的名称。点击Finish即可
在这里插入图片描述
在这里插入图片描述
注意所有生成的文件都统一放在一个文件夹下(我创建的文件夹名称为“harmony-configs”)

csr文件选择在harmony-configs文件夹创建的csr文件夹里,点击finish和确定。这样我们的csr文件搞定了在上述界面可以选取刚刚的csr,点击提交即可
在这里插入图片描述
下载后的cer文件,放在harmony-configs文件夹下的新增文件夹调试
在这里插入图片描述
2.配置APPID,点击新增
在这里插入图片描述
填写应用名称和应用包名后点击下一步
在这里插入图片描述选择所属项目和需要的开发能力,点击确定
在这里插入图片描述
这就创建了APPID
在这里插入图片描述
3.新增应用,填写名称、选择设备类型和UDID
在这里插入图片描述
UDID获取方法

在手机、平板、PC/2in1、智能手表上获取UDID的方法如下:

  1. 在设备上打开USB调试权限。
  2. 使用PC连接设备后,打开命令行工具,进入HDC目录(一般为:DevEco Studio安装目录/sdk/default/openharmony/toolchains),输入hdc shell bm get --udid命令,获取设备的UDID。

4.添加profile,选择应用和profile名称 ,类型为调试等信息,点击右上角“添加”,调试Profile申请成功,“Profile”页面展示Profile信息。点击“下载”,将生成的p7b文件保存至harmony-configs文件夹,供后续签名使用。
在这里插入图片描述
5.文件齐全后就可以回到下列界面,选择“项目结构”
在这里插入图片描述
点击“签名配置”后并点击新增,增加一个release的配置用于发版
在这里插入图片描述
去掉自动生成签名的勾选,并且从harmony-configs文件夹中选取到对应的文件,填入进去点击“Apply”即可

在这里插入图片描述
点击“Product”,把构建模式改为“release”后点击“Apply”
在这里插入图片描述
6.点击“构建” > 选择编译成Hap 或 APP 即可
在这里插入图片描述
最后构建出来的包都会在这里。
在这里插入图片描述

至此,前期准备工作已全部完成,我们已成功将 UniApp 项目打包为鸿蒙应用,后续可进入应用的发布阶段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/93929.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/93929.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32-FreeRTOS快速入门指南(下)

第十一章 FreeRTOS事件标志组 1. 事件标志组简介 事件标志组与信号量一样属于任务间同步的机制,但是信号量一般用于任务间的单事件同步,对于任务间的多事件同步,仅使用信号量就显得力不从心了。 FreeRTOS 提供的事件标志组可以很好的处理多事…

KTH7812磁编码器芯片完全支持ABZ和UVW输出模式

KTH7812磁编码器芯片完全支持ABZ和UVW输出模式,具体功能细节如下:🔧 1. ABZ输出特性 分辨率可编程:支持 4~4096步/圈(对应1~1024个脉冲周期/圈),用户可通过配置寄存器自定义分辨率。 输出频率…

Android为ijkplayer设置音频发音类型usage

官方文档 多区音频路由 | Android Open Source Projecthttps://source.android.google.cn/docs/automotive/audio/audio-multizone-routing?hlzh-cn 背景 车机系统开发多分区(zone)功能,可以实现同一个app通过设置,在不同分…

C++ 循环:从入门到精通的深度解析

《C++ 循环:从入门到精通的深度解析》 目录 循环的本质与编程价值 三大基础循环结构详解 循环控制语句:break与continue的魔法 嵌套循环:构建复杂逻辑的基石 现代C++循环特性(C++11+) 循环性能优化与常见陷阱 实战案例:算法与工程中的循环应用 面试题深度解析与编程技巧…

| `cat /etc/os-release` | 发行版详细信息(如 Ubuntu、CentOS) |

在 Linux 或类 Unix 系统中,最简洁的命令查看操作系统类型是: uname -s✅ 输出示例: LinuxDarwin(macOS)FreeBSD 等🔍 说明: uname:显示系统信息-s:仅显示操作系统内核名…

Maya 3D建模:点、线、面、创建多边面

目录 一 点、线、面 二 创建多边面 一 点、线、面 鼠标放在模型上 按住鼠标右键:就可以选择点 线 面 shift 加选点线面 ctrl 减选点线面 顶点面:是一个检查模式,观察有无错误 选择面,单击一个面,按住shift键 同时…

CXR-LT 2024:一场关于基于胸部X线的长尾、多标签和零样本疾病分类的MICCAI挑战赛|文献速递-深度学习人工智能医疗图像

Title题目CXR-LT 2024: A MICCAI challenge on long-tailed, multi-label, and zero-shotdisease classification from chest X-rayCXR-LT 2024:一场关于基于胸部X线的长尾、多标签和零样本疾病分类的MICCAI挑战赛01文献速递介绍CXR-LT系列是一项由社区推动的计划&a…

拆解本地组策略编辑器 (gpedit.msc) 的界面和功能

我们来详细拆解本地组策略编辑器 (gpedit.msc) 的界面和功能。打开后,你会看到一个标准的微软管理控制台 (MMC) 窗口,主要分为三个部分。 这是一个典型的本地组策略编辑器界面,我们将其分为三个主要部分进行讲解: +-----------------------------------------------+----…

[NCTF2019]True XML cookbook

TRY 尝试XML外部实体注入 <?xml version"1.0" encoding"utf-8" ?> <!DOCTYPE user[<!ENTITY flag SYSTEM "file://./doLogin.php"> ]> <user><username> &flag; </username><password>1</pa…

嵌入式硬件篇---模块使用

在电子开发、自动化控制等领域&#xff0c;“模块” 是实现特定功能的标准化组件&#xff08;可以理解为 “功能积木”&#xff09;。不同模块分工明确&#xff0c;比如有的负责感知环境&#xff08;传感器&#xff09;&#xff0c;有的负责通信&#xff08;蓝牙 / WiFi&#x…

密码管理中Null 密码

Null 密码定义&#xff1a;Null 密码是指允许用户或系统账户使用空密码&#xff08;即不输入任何字符&#xff09;进行登录或身份验证的配置。危害&#xff1a;完全绕过身份验证&#xff1a;这是最严重的危害。攻击者无需破解或窃取任何密码&#xff0c;只需输入用户名并留空密…

git新建项目如何推送到远程仓库

​ git新建项目如何推送到远程仓库 一、远程代码库操作(gitee为例) 1. 建新仓库 2. 找到地址:这里可以看到用户名等其他信息 3. 记住地址url(https) 二、本地操作 1. 安装git 2. 创建项目 3. 在当前项目下打开git bash 4. 添加远程仓库 5. 检查远程仓库地址 6. 检查当前状…

代码管理平台Gitlab如何通过 ZeroNews 实现远程访问?

Gitlab介绍1.1 GitLabGitLab 是一个基于 Web 的开源代码托管平台&#xff0c;集代码托管、项目管理、持续集成与持续部署等功能于一身。它采用 Git 作为版本控制系统&#xff0c;界面友好、功能丰富。相较于市场上的 Gitee 和 GitHub&#xff0c;GitLab 有以下优势&#xff1a;…

基于STM32F103C8T6控制A4988模块驱动2相4线步进电机

文章目录一、A4988模块简介二、A4988引脚说明三、A4988的Vref电压调节四、STM32F103C8T6控制A4988驱动2相4线步进电机准备工作引脚接线代码示例效果展示五、A4988电机驱动板常见问题一、A4988模块简介 A4988 是一款功能齐全的微步进电机驱动器&#xff0c;内置转换器&#xff0…

基于单片机智能晾衣架/智能窗户/智能窗帘设计

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 智能晾衣架系统基于单片机设计&#xff0c;融合传感器技术与物联网功能&#xff0c;实现衣物的自…

Python爬虫实战:研究dark-fantasy,构建奇幻文学数据采集分析系统

1. 引言 1.1 研究背景 奇幻文学作为奇幻文学的重要子类别,融合了哥特式元素与传统奇幻设定,以其对人性的深刻探索和复杂的道德困境构建,成为当代文学研究的重要对象。与传统奇幻文学强调英雄主义和光明战胜黑暗的叙事不同,奇幻往往展现道德边界、复杂的角色动机和充满不确…

算法提升树形数据结构-(线段树)

今天介绍有关线段树的相关部分的知识&#xff0c;线段树是树的数据结构中十分重要的算法处理思想。1.建立初始树的条件2.基本框架3.区间修改的相关代码4.区间查询的代码题目描述给定一个长度为 N 的数组 a&#xff0c;其初值分别为 a1​,a2​,...,aN​。现有 Q 个操作&#xff…

java-代码随想录第十四天| 二叉树层序遍历相关题目

目录 102.二叉树的层序遍历 107.二叉树的层次遍历II 199.二叉树的右视图 637.二叉树的层平均值 429.N叉树的层序遍历 515.在每个树行中找最大值 116.填充每个节点的下一个右侧节点指针 117.填充每个节点的下一个右侧节点指针II 104.二叉树的最大深度 111.二叉树的最小…

C++智能指针详解:告别内存泄漏,拥抱安全高效

✨✨小新课堂开课了&#xff0c;欢迎欢迎~✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;C&#xff1a;由浅入深篇 小新的主页&#xff1a;编程版小新-CSDN博客 引言&#xff1a;为什么引入智能指针&#…

算法训练营day57 图论⑦ prim算法精讲、kruskal算法精讲

两种最小生成树算法讲解 prim算法精讲 卡码网53. 寻宝 本题题目内容为最短连接&#xff0c;是最小生成树的模板题&#xff0c;那么我们来讲一讲最小生成树。最小生成树可以使用prim算法也可以使用kruskal算法计算出来。本篇我们先讲解prim算法。 最小生成树是所有节点的最小连…