OpenHarmony 实战开发——应用HAP包签名

news2024/11/16 18:48:09

背景

OpenAtom OpenHarmony(以下简称“OpenHarmony”)应用如果需要对外发布就必须要通过应用签名,DevEco Studio已提供自动签名功能加速应用开发,但自动签名仅限于debug开发,如需对外发布则必须完成release签名。

在OpenHarmony中有AGC应用商店可以帮助开发者完成release签名,本文将介绍OpenHarmony应用签名方法的步骤,将使用OpenHarmony官方提供的签名工具对HAP进行签名。

使用DevEco Studio完成HAP自动签名

打开DevEco Studio工具,点击右上角Project Structure进入工程配置页面

点击Project -> Signing Configs,勾选Automatically generate signing,点击OK

点击Build -> Rebuild Project 或 Build HAP都可以编译构建HAP包

编辑构建完成后我们可以得到未签名的HAP包

这个包可以用于Debug调试,但不能用于Release正式发布

IDE对HAP包签名的密码限制

从理论上讲,我们也可以通过DevEco Studio进行HAP包的发布签名,但是官方提供的OpenHarmony.p12文件密码为123456

而IDE不支持使用123456这样的简单的密码,它达不到密码安全级别

因此,使用官方加密文件完成签名暂时行不通

我们改变思路,使用命令行方式完成签名,这样可以绕过IDE的限制

使用官方开源签名工具完成签名

查阅官方资料发现,官方已经提供了命令行签名工具

https://gitee.com/openharmony/developtools_hapsigner

我们通过修改配置文件、执行脚本,即可完成HAP签名

具体步骤如下:

1 安装工具依赖环境

安装python3.10(下载链接:https://www.python.org/downloads/),通过命令行验证安装是否成功

安装jdk,配置好环境变量,通过命令行验证安装是否成功

2 将签名工具代码拉取到本地保存,修改配置文件

git clone https://gitee.com/openharmony/developtools_HAPsigner.git

修改developtools_HAPsigner\autosign\signHAP.config文件配置

# config.signtool改为HAP-sign-tool.jar的绝对路径,可以在dist目录中找到config.signtool=E:/openharmony/developtools_HAPsigner/dist/HAP-sign-tool.jar

# common.keystoreFile改为OpenHarmony.p12的绝对路径,可以在dist目录中找到common.keystoreFile=E:/openharmony/developtools_HAPsigner/dist/OpenHarmony.p12

# app.keypair.keyAlias改为OpenHarmony Application

Releaseapp.keypair.keyAlias=OpenHarmony Application Release

# cert.app.outFile改为OpenHarmonyApplication.pem的绝对路径,可以在dist目录中找到cert.app.outFile=E:/openharmony/developtools_HAPsigner/dist/OpenHarmonyApplication.pem

# sign.profile.outFile改为官方提供的p7b绝对路径,比如launcher代码中提供了launcher.p7b加密文件

sign.profile.outFile=E:/openharmony/signfiles/launcher/launcher.p7b

# sign.app.inFile为未签名HAP路径

sign.app.inFile=E:/openharmony/applications_launcher/product/phone/build/default/outputs/default/phone-launcher-default-unsigned.HAP

# sign.app.outFile为签名后的HAP保存路径

sign.app.outFile=E:/openharmony/applications_launcher/product/phone/build/default/outputs/default/phone-launcher-signed.HAP

3 完成配置文件修改后,执行签名脚本

# 进入签名工具autosign目录

cd E:\openharmony\developtools_HAPsigner\autosign

# 执行python脚本

python .\autosign.py signHAP

签名成功后显示Success

到指定目录下可以找到签名后的HAP

总结

DevEco Studio开发工具为开发人员提供了非常友好的HAP自动签名功能及非常便捷的Debug包。由于IDE的安全密码要求,对于Release包的发布我们暂时需要手动签名,尤其是系统级的应用。

经常有很多小伙伴抱怨说:不知道学习鸿蒙开发哪些技术?不知道需要重点掌握哪些鸿蒙应用开发知识点?

为了能够帮助到大家能够有规划的学习,这里特别整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线,包含了鸿蒙开发必掌握的核心知识要点,内容有(ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、WebGL、元服务、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、OpenHarmony驱动开发、系统定制移植等等)鸿蒙(HarmonyOS NEXT)技术知识点。

在这里插入图片描述

《鸿蒙 (Harmony OS)开发学习手册》(共计892页):https://gitcode.com/HarmonyOS_MN/733GH/overview

如何快速入门?

1.基本概念
2.构建第一个ArkTS应用
3.……

开发基础知识:

1.应用基础知识
2.配置文件
3.应用数据管理
4.应用安全管理
5.应用隐私保护
6.三方应用调用管控机制
7.资源分类与访问
8.学习ArkTS语言
9.……

在这里插入图片描述

基于ArkTS 开发

1.Ability开发
2.UI开发
3.公共事件与通知
4.窗口管理
5.媒体
6.安全
7.网络与链接
8.电话服务
9.数据管理
10.后台任务(Background Task)管理
11.设备管理
12.设备使用信息统计
13.DFX
14.国际化开发
15.折叠屏系列
16.……

在这里插入图片描述

鸿蒙开发面试真题(含参考答案):https://gitcode.com/HarmonyOS_MN/733GH/overview

在这里插入图片描述

OpenHarmony 开发环境搭建

图片

《OpenHarmony源码解析》:https://gitcode.com/HarmonyOS_MN/733GH/overview

  • 搭建开发环境
  • Windows 开发环境的搭建
  • Ubuntu 开发环境搭建
  • Linux 与 Windows 之间的文件共享
  • ……
  • 系统架构分析
  • 构建子系统
  • 启动流程
  • 子系统
  • 分布式任务调度子系统
  • 分布式通信子系统
  • 驱动子系统
  • ……

图片

OpenHarmony 设备开发学习手册:https://gitcode.com/HarmonyOS_MN/733GH/overview

图片
在这里插入图片描述

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

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

相关文章

USR-DR134有人网关如何对接到ThingsPanel

本指南将帮助您使用有人口红串口服务器USR-DR134/USR-DR132将断路器接入ThingsPanel平台。这款创新的超小体积导轨式单串口服务器能够实现RS485/RS232转以太网的双向透传功能,是连接断路器与物联网平台的理想选择。 设备介绍: 口红串口服务器USR-DR134…

Juniper防火墙与交换机trunk配置

拓扑图 防火墙配置 set interfaces ge-0/0/1 description To_INET set interfaces ge-0/0/1 enable set interfaces ge-0/0/1 vlan-tagging set interfaces ge-0/0/1 unit 97 description To_INET set interfaces ge-0/0/1 unit 97 vlan-id 97 set interfaces ge-0/0/1 unit 9…

【小白深度学习入门】【3】卷积层中的Padding填充详解:作用、类型、优缺点

《博主简介》 小伙伴们好,我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 👍感谢小伙伴们点赞、关注! 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

oceanbase 常用视图查询记录

测试环境:1-1-1 OceanBase 企业版3.2.4.4 查看租户的 Context 和 Modudle 内存 SELECT tenant_id, svr_ip, ctx_id, ctx_name, mod_name, count, round(HOLD / 1024 / 1024, 2) hold_mb, round(used / 1024 / 1024, 2) used_mb FROM oceanbase.__all_virtual_memory…

noge-gyp构建项目踩坑记录

开发环境 系统: win11 node: 19.7.0 npm: 8.3.2 node-gyp: 10.0.2可以不使用windows-build-tools来安装构建工具,手动进行安装 我这边用windows-build-tools安装时候会提示 process.env only accepts a configurable, writable, and enumerable data descriptor. 查了资料后…

设计者模式之访问者模式

1.访问者模式概述 允许你在不改变对象结构中的元素类的前提下,向对象结构中的元素增加新的行为。这种模式将数据结构与作用于结构上的操作分离,从而使得我们可以独立地改变数据结构和操作。 2.访问者模式的组成部分 1)Visitor(访…

Mysql基础练习题 595.大的国家 (力扣)

如果一个国家满足下述两个条件之一,则认为该国是 大国 : 面积至少为 300 万平方公里(即,3000000 km2),或者 人口至少为 2500 万(即 25000000) 编写解决方案找出 大国 的国家名称、…

可视耳勺有没有实用性?揭露五大隐患套路!

随着科技的进步,很多人着重关注自己的个护健康,传统挖耳勺的盲目操作引起鼓膜受损的操作屡见不鲜,很多人摈弃传统挖耳勺,选择了更加直观挖耳的可视耳勺,它能通过高清内窥镜进入耳朵实时反映耳道的情况,受到…

无人机飞手执照,合法飞行不得不考的证

无人机飞手执照(也称为民用无人驾驶航空器系统驾驶员合格证或遥控航空模型飞行员执照)在特定情况下是合法飞行所必需的。以下是关于无人机飞手执照的详细解答: 一、无人机飞手执照的必要性 1. 法规要求:根据《民用无人驾驶航空器…

【安当产品应用案例100集】013-安当透明加密组件实现企业网盘数据安全存储

企业数据存储是企业运营中一个复杂关键的过程,它涉及多个方面,包括选择合适的存储解决方案、实施数据备份与恢复策略、确保数据安全以及优化存储性能等。 本案例中,我们将以企业网盘文件存储和共享为例,介绍一下办公场景和出差场…

html2canvas、pdf-lib、file-saver将html页面导出成pdf

html2canvas、pdf-lib、file-saver将html页面导出成pdf 项目背景 需要根据用户的账号信息,生成一个pdf报告发给客户,要求报告包含echart饼图、走势图等。 方案 使用html2canvas,将页面转成图片,再通过pdf-lib将图片转成pdf文件…

食家巷一窝丝:匠心传承的美味传奇

在美食的广袤天地中,有一种独特的存在 —— 食家巷一窝丝。它不仅仅是一道美食,更是一种文化的传承,一段历史的记忆。食家巷一窝丝,以其精湛的制作工艺和独特的口感令人陶醉。每一根丝都细如发丝,均匀整齐,…

基于CW2217B的库仑计硬件设计

一、CW2217简介: CW2217B是一款适用于穿戴设备的超低功耗锂电池电量计芯片。芯片监测电池在充放电状态下的电压,电流和温度,运行专利“FastCali”电量计算法,结合电池建模信息,可准确计算电池的剩余电量。CW2217B适用于包括锂锰,锂钴和聚合物等多种类型的锂电池应用。 …

fastadmin 列表显示渲染图片

想把地址显示成图片 在对应的js文件里加上这句话 formatter: Table.api.formatter.image 如果想点击图片列可以看图片的大图,则需要加上 events: Table.api.events.image 效果 Table.api.formatter Table.api.formatter封装了许多FastAdmin表格列表中常用的单元…

从入门到精通:TEMU商家如何利用自养号测评打造爆款

TEMU平台以其独特的魅力和无限潜力,吸引着众多商家竞相入驻。然而,面对激烈的市场竞争,如何快速提高销量,成为摆在每位商家面前的重大课题。本文将深入剖析一种高效且具策略性的方法——精细化自养号测评,帮助TEMU商家…

比较器(过零/非过零检测+噪声的影响+滞回+输出限幅+窗口比较器)

2024-8-30,星期五,7:25,天气:晴,心情:晴。今天周五啦,终于可以休息了,也祝大家周末快乐,玩的开心!。 今天开始了第八章基本运算放大器电路的学习&#xff0c…

Python计算机视觉 第6章-图像聚类

Python计算机视觉 第6章-图像聚类 6.1 K-means聚类 K-means 聚类 是一种常用的无监督学习算法,用于将数据集划分为 ( K ) 个簇。 算法步骤 选择 ( K ) 个初始簇中心(可以是随机选择或其他启发式方法)。将每个数据点分配到距离其最近的簇…

排查C++程序CPU异常占用方法

如果服务器资源允许可以考虑一些CPU资源占用工具,例如Perf、SystemTap。 服务器资源不允许的情况下可以使用GDB调试。 步骤如下: 1、使用top查看CPU高占用的程序,记下它的进程ID; 2、多线程服务排查时,需要排查对应…

案例分享 | Digimat应用于金属材料的仿真

Digimat——应用于金属材料的仿真 Digimat是一款专注于多尺度复合材料非线性材料本构预测和材料建模的商用软件包。Digimat能够帮助用户预测多相材料的宏观性能,支持的材料范围涉及包含连续纤维、长纤维、短纤维、纤维编织、晶须、颗粒、片层等所有增强相和包括树脂…

代理IP设置白名单:让你的网络更安全高效

在网络世界中,代理IP不仅能帮助我们提升网络速度、保护隐私,还能通过设置白名单来进一步增强网络的安全性和稳定性。本文将详细介绍代理IP设置白名单的方法和注意事项,让你在使用代理IP时更加得心应手。 什么是代理IP白名单? 代…