HarmonyOS 签名打包Hap(s)、App(s)

1. 基本概念

  HarmonyOS应用通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用的完整性,数字证书和Profile文件可通过申请发布证书和Profile文件获取。
  申请数字证书和Profile文件前,首先需要通过DevEco Studio来生成密钥文件(.p12文件)和证书请求文件(.csr文件)。同时,也可以使用命令行工具的方式来生成密钥文件和证书请求文件。
  • 密钥:包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
  • 证书请求文件:格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
  • 数字证书:格式为.cer,由华为AppGallery Connect颁发。
  • Profile文件:格式为.p7b,包含HarmonyOS应用的包名、数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为Release类型,则设备列表为空)等内容,每个应用包中均必须包含一个Profile文件。

1.1.步骤

官方文档
步骤

1.2. 流程

官方文档-应用/服务发布
发布HarmonyOS应用
在这里插入图片描述

2. 基本操作

2.1. 密钥和证书请求文件

  使用DevEco Studio生成密钥和证书请求文件
  (1) 在主菜单栏点击Build > Generate Key and CSR。
在这里插入图片描述
  如果本地已有对应的密钥,无需新生成密钥,可以在Generate Key界面中点击下方的Skip跳过密钥生成过程,直接使用已有密钥生成证书请求文件。
  (2) 在Key Store File中,可以点击Choose Existing选择已有的密钥库文件;如果没有密钥库文件,点击New进行创建。下面以新创建密钥库文件为例进行说明。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.1.1. 密钥(p12)

在这里插入图片描述
  密码必须至少包含8个字符,并包含以下任意两个字符:
  1.小写字母:a-z
  2.大写字母:A-Z
  3.数字:0-9
  4.特殊字符:“`~!@$%^ *()-=+\\[{}];:”,.>/
在这里插入图片描述
  名字和姓氏的值可以包含0到64个字符,仅包括大写字母、小写字母和空格。

2.1.2. 证书请求文件(csr)

在这里插入图片描述

2.2. 发布证书和Profile文件

AppGallery Connect
在这里插入图片描述
  通过生成的证书请求文件,向AppGallery Connect申请发布证书和Profile文件。
(1) 创建您的AGC项目;
(2) 创建HarmonyOS应用;
(3) 申请发布证书和Profile文件。

2.2.1. 应用发布证书

  一个账号最多可申请1个发布证书,2个调试证书。
(1)登录AppGallery Connect网站,在网站首页中点击“用户与访问”。
在这里插入图片描述
(2)在左侧导航栏点击“证书管理”,进入“证书管理”页面。
在这里插入图片描述
(3)点击“新增证书”,弹出“新增证书”窗口。
(4)在“新增证书”窗口中填写要申请的证书信息,点击“提交”。
在这里插入图片描述
  证书申请成功后,“证书管理”页面展示“证书名称”、“证书类型”,“失效日期”和“操作”列信息。
  在“操作”列点击“下载”,可下载证书。
  在“操作”列点击“废除”,且在弹出的“提示”窗口中点击“确认”,可废除证书。
  说明:如证书已过期,“失效日期”列展示“已于YYYY-MM-DD过期”。您可以下载或废除过期证书。
在这里插入图片描述
在这里插入图片描述

2.2.2. 添加设备

在这里插入图片描述

2.3. Profile文件

  一个账号最多可申请100个Profile文件。
(1)登录AppGallery Connect网站,在网站首页中点击“我的项目”。
(2)找到您的项目,点击您创建的HarmonyOS应用。
(3)在左侧导航栏选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面。
在这里插入图片描述
(4)点击右上角“添加”,弹出“HarmonyAppProvision信息”窗口。
(5)在弹出的“HarmonyAppProvision信息”窗口中添加Profile。
在这里插入图片描述
(6)发布Profile申请成功后,“管理HAP Provision Profile”页面展示“名称”、“类型”、“证书”、“失效日期”和“操作”列信息。
在这里插入图片描述
(7)在“操作”列点击“下载”,可下载Profile文件。
(8)在“操作”列点击“删除”,且在弹出的“提示”窗口中点击“确认”,可删除Profile文件。

2.4. 打包

2.4.1. 签名配置

  DevEco Studio 中 File >Project Structure > project > Signing Configs进行配置
在这里插入图片描述

2.4.2. 位置

在这里插入图片描述
  app包仅用于上架应用市场,是最终release上架包;hap包为调试版本,调试应用过程中可以使用hap进行运行,同时app包无法通过hdc命令安装,hap调试包可通过hdc app install xxx.hap进行安装。
在这里插入图片描述

2.5. 获取设备UDID

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.5.1. 找到SDK的位置

(1)方法1
  在主菜单栏点击Tool > SDK Manager。
在这里插入图片描述
(2)方法2
在这里插入图片描述

2.5.2. 找到hdc.exe

在这里插入图片描述

#2.5.3. 查找

根据命令行查找
hdc.exe shell bm get -udid
在这里插入图片描述

2.5.4. hdc命令安装hap包

在这里插入图片描述
在这里插入图片描述
(1)第一步
cd D:\Harmoney\Sdk\toolchains
(2)第二步
hdc file send D:\Harmoney\JavaProject\Sdqlet\entry\build\outputs\hap\debug\entry-debug-rich-signed.hap /sdcard/zzs/entry-debug-rich-signed.hap
(3)第三步
hdc shell bm install -p /sdcard/zzs/

3. 签名打包所需文件

在这里插入图片描述

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

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

相关文章

【ES】es介绍

倒排索引(Inverted Index)和正排索引(Forward Index) 正排索引是一种以文档为单位的索引结构,它将文档中的每个单词或词组与其所在的文档进行映射关系的建立。正排索引通常用于快速检索指定文档的内容,可以…

一键访问多功能数据解决方案:如何轻松构建和管理APITable智能多维表格

文章目录 前言1. 部署APITable2. cpolar的安装和注册3. 配置APITable公网访问地址4. 固定APITable公网地址 前言 vika维格表作为新一代数据生产力平台,是一款面向 API 的智能多维表格。它将复杂的可视化数据库、电子表格、实时在线协同、低代码开发技术四合为一&am…

【JS逆向学习】有道翻译接口参数逆向

逆向目标 目标:有道翻译接口加密参数接口:https://dict.youdao.com/webtranslate加密参数: sign: e3d8fa747713d6957db7cd2eedaa0d95Cookie: OUTFOX_SEARCH_USER_ID696102715114.222.69.137; OUTFOX_SEARCH_USER_ID_NCOO304412380.2597743 …

出现频率高达70%软件测试面试题及答案!——看完面试官:是你面试我还是我面试你啊!

【纯干货!!!】花费了整整3天,整理出来的全网最实用软件测试面试大全,一共30道题目答案的纯干货,希望大家多多支持,建议 点赞!!收藏!!长文警告&…

千巡翼X4轻型无人机 赋能智慧矿山

千巡翼X4轻型无人机 赋能智慧矿山 传统的矿山测绘需要大量测绘员通过采用手持RTK、全站仪对被测区域进行外业工作,再通过方格网法、三角网法、断面法等进行计算,需要耗费大量人力和时间。随着无人机航测技术的不断发展,利用无人机作业可以大…

分享:新手程序员接单一个月,收入3375元

今年刚开始接触外包接单,从注册到现在接到了一个单子,赚了3000多块钱。 赚的钱不多,期间踩的坑倒是不少,给大家挨个唠唠…… 1 一定要完善好自己的简历项目 在外包平台上接单,简历上的项目是重中之重。跟传统的招聘不…

算法基础day2

前缀和 #include <iostream> using namespace std; const int N100010; int n,m; int a[N],s[N]; int main() {scanf("%d%d",&n,&m);for(int i1;i<n;i) scanf("%d",&a[i]);for(int i1;i<n;i) s[i]s[i-1]a[i];while(m--){int l,r;s…

软件测试/测试开发丨学习笔记之Docker常用命令

Docker常用的容器管理命令 docker run –name{your_name} –d {image_name} (运行容器) -d 后台运行docker ps -s -a {查看当前所有容器}docker stop {container_name} (停止容器)docker kill (container_name) {杀死容器}docker rm -f {container_name} (删除容器)docker log…

帆软BI和奥威BI分别适用于哪些行业?

听说不同品牌的BI软件都有各自擅长的行业数据分析&#xff0c;那么帆软BI和奥威BI分别适用于哪些行业&#xff1f;接下来就一起来看看吧&#xff01; 帆软BI 帆软BI是一款业界知名的商业智能(BI)工具&#xff0c;能帮助企业对数据进行分析和决策。帆软BI可以应用于多个行业&a…

uniapp开发移动端遇到的问题记录

1. 键盘弹起时页面整体上移问题 很常见但我解决过程中遇到了很多问题 我的键盘没有遮盖到输入框&#xff0c;但手机键盘弹起后&#xff0c;form部分会整体上移一点&#xff0c;并且底部的操作也会弹到键盘上方 网上写得很复杂&#xff0c;什么动态赋值高度balabala。看到有一…

【阅读笔记】Semi-supervised Domain Adaptation in Graph Transfer Learning

Background 真实世界的图上节点的标签数据是很难拿到的。 因此图转移学习被提出将知识从标记的源图转移出来&#xff0c;以帮助预测域变化的目标图中节点的标签。 尽管图迁移学习算法取得了重大进展&#xff0c;但它们通常假定源图中的所有节点都被标记出来了。 因此文章定义…

【JavaEE】多线程(6) -- 定时器的使用及实现

目录 定时器是什么 标准库中的定时器的使用 实现定时器 定时器是什么 Java中的定时器是一种机制&#xff0c;用于在预定时间执行某个任务。它允许开发人员在指定的时间间隔内重复执行任务&#xff0c;或在指定的延迟之后执行任务。定时器是Java提供的一种方便的工具&#xf…