如何打包鸿蒙应用并发布到应用市场

news2024/10/1 7:40:57

知识点: HarmonyOS 应用打包后的文件为.app 格式, android 打包后的文件为.apk,IOS 打包后的文件为.apa
HarmonyOS通过数字证书(.cer文件)和Profile文件(.p7b文件)等签名信息来保证应用的完整性,应用如需上架到华为应用市场必须通过签名校验。因此,您需要使用发布证书和Profile文件对应用进行签名后才能发布

第一步:生成签名密钥**
1.1签名流程:签名分为手动签名和自动签名(做为一个以提高工作效率为己任的员工《懒》,谁会使用手动签名)
生成密钥:点击工具栏中Build —> Generate Key and CSR
在这里插入图片描述
1.2填写密钥信息:如果已经有密钥选择“choose Existing” 选择对应的密钥,如果没有请点击New
在这里插入图片描述
1.3填写信息
Key Store File:设置密钥库文件存储路径,并填写p12文件名。
Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
Confirm Password:再次输入密钥库密码。
在这里插入图片描述
(以上内容在保存的时候回报错,因为路径最后的文件命没命名在这里插入图片描述

1.4 在Generate Key and CSR界面中,继续填写密钥信息后,单击Next。

Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
Validity:证书有效期,建议设置为25年及以上,覆盖应用/服务的完整生命周期。
Certificate:输入证书基本信息,如组织、城市或地区、国家码等。

在这里插入图片描述
1.5在Generate Key and CSR界面,设置CSR文件存储路径和CSR文件名。点击finish 后点击OK
在这里插入图片描述
第二步申请证书:

发布证书由AGC颁发的、为HarmonyOS应用配置签名信息的数字证书,可保障软件代码完整性和发布者身份真实性。证书格式为.cer,包含公钥、证书指纹等信息。
登录这个网站:
https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#/

2.1点击用户和访问:
在这里插入图片描述
2.2 点击后在左侧点击证书管理
在这里插入图片描述
2.3 点击新增
在这里插入图片描述2.4 填写证书信息
在这里插入图片描述
在这里插入图片描述
2.5 证书申请成功后,“证书管理”页面展示证书名称等信息。点击“下载”,将生成的证书保存至本地,供后续签名使用。(证书的有效期是2年)

在这里插入图片描述第三步:申请Provision Profile
3.1 登录AppGallery Connect,选择“我的项目”。
找到您的项目,点击您创建的HarmonyOS应用。
在左侧导航栏选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面,点击右上角“添加”。
在这里插入图片描述
在这里插入图片描述3.2 在弹出的“HarmonyAppProvision信息”窗口中添加Profile,完成后点击“提交”。
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/fde39a30e0314d18bb0aeb6657ddfb1d.png
在这里插入图片描述
3.3 然后将profile 下载
在这里插入图片描述
第四步配置签名信息
4.1 备注:不用点击:Automatically generate signature
(由于缺少设备,无法创建配置文件。首先通过lP或USB连接设备。如果您
正在模拟器上安装HAP。 )在这里插入图片描述
4.2 在配置的时候选择上面步骤申请的文件,直接选中即可
在这里插入图片描述
第五步:编译HAP 或者app:在DevEcoStudio 中选择Build —> Build Hap(s)/APP(s)

在这里插入图片描述
5.1 等待编译构建。编译完成后,将在工程目录“build > outputs > default”目录下,获取可用于发布的应用包。
在这里插入图片描述

第六步发布应用:“发布应用之前必须将应用信息和版本信息填写完毕”
6.1 登录AGC 平台
在这里插入图片描述6.2 填写网页内具体信息,其中包含一些公司的信息和应用版权信息这就不具体展示了
在这里插入图片描述

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

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

相关文章

最常见的SQL报错注入函数(floor、updatexml、extractvalue)及payload总结

SQL报错注入是一种常见的SQL注入攻击方式,攻击者通过注入恶意代码,触发数据库的错误响应,并从错误信息中获取有用的信息。 下面介绍最常见的三个报错注入函数用法及payload总结: 1、floor() 使用floor报错注入,需要…

VS2020使用MFC开发一个贪吃蛇游戏

背景: 贪吃蛇游戏 按照如下步骤实现:。初始化地图 。通过键盘控制蛇运动方向,注意重新设置运动方向操作。 。制造食物。 。让蛇移动,如果吃掉食物就重新生成一个食物,如果会死亡就break。用蛇的坐标将地图中的空格替换为 #和”将…

[动态规划]完全背包问题及其优化

题目描述 有N种物品和一个容量为 V 的背包,每种物品都有无限件可用。 第 i 种物品的体积是Ci,价值是Wi。求解在不超过背包容量的情况下,能够获得的最大价值。 输入 第一行为两个整数N、V(1≤N,V≤10000),分别代表题目描述中的物…

java 怎么读取文件创建时间?

Java读取文件创建时间的实现方法 在工作时候,我们有时候需要获取到文件的最后更新时间,根据最近更新时间,来处理其他业务。那么,在Java中,怎么获取到文件最后更新时间呢?接下来凯哥(个人号:凯哥…

教你应对Github最新的2FA二次验证! 无地区限制, 你的Github账户可能被封禁!

文章目录 2FA 定义2FA验证方法1 硬件令牌2.推送通知3.SMS 验证4 基于语音的身份验证 解决方案安装身份验证器的谷歌浏览器插件打开 github 的二维码,直接扫描 2FA 定义 双因素身份验证 (2FA) 是一种身份和访管理安全方法,需要经过两种形式的身份验证才能…

大数据----MapReduce实现统计单词

目录 一、简介二、实现单词统计数据准备编程MapReduceJob 三、运行四、结果 一、简介 Hadoop MapReduce 是一个编程框架,它可以轻松地编写应用程序,以可靠的、容错的方式处理大量的数据(数千个节点)。 正如其名,MapReduce 的工作模式主要分…

每日一题——Leetcode908

方法一 数学思想&#xff1a; 其实就是看数组中最大值和最小值一个加上k一个减去k是否能刚好凑到0&#xff0c;如果不能就是两者之差 var smallestRangeI function(nums, k) {var min9999,max-1for(var i0;i<nums.length;i){min Math.min(min,nums[i])max Math.max(max…

Python数据分析 Matplotlib篇 基本方法初识 (第1讲)

Python数据分析 Matplotlib篇(第1讲)         🍹博主 侯小啾 感谢您的支持与信赖。☀️ 🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹꧔ꦿ🌹…

leetcode 1576. 替换所有的问号(easy)(优质解法)

链接&#xff1a;1576. 替换所有的问号 代码&#xff1a; class Solution {public String modifyString(String s) {char[] charSs.toCharArray();int lengthcharS.length;//遍历找到 &#xff1f;for(int i0;i<length;i){if(charS[i]?){//遍历 a ~ z 选择一个合适的字符来…

Linux怎么解压zip格式文件?

Linux解压命令zip是一种常见的文件压缩格式&#xff0c;用于把文件打包成一个zip文件&#xff0c;当我们需要共享或是发送时&#xff0c;能够更快速的发送&#xff0c;储存起来能够减少储存空间。那我们在Linux上怎么使用解压命令zip来解压zip格式文件呢&#xff1f;我们一起来…

MySQL 大数量left join 太慢语句拆分的一种办法

最近做点股市分析&#xff0c;发现日线数据已经达到了千万级&#xff0c;想做个两个日期之间的收盘价比较&#xff0c;例如第一周1月3日和1月6日的涨幅&#xff0c;很简单的语句&#xff0c;如下&#xff1a; select a.scode,s. name,a.sdate sdate1,a.close close1, b.sdate …

nodejs+vue+ElementUi房屋房产销售预约看房系统bqv00

完成房产销售系统&#xff0c;对房源的信息、用户信息及各种资料进行收集和科学的管理&#xff0c;该系统的功能基本可以满足当前市面上的小型房产企业对于房产销售的基本要求&#xff0c;收集各个地区的房源信息并进行分类管理&#xff0c;用户通过注册账号登录网站查询房源信…

小狐狸ChatGPT付费创作系统 前端对话提示undefined index:temperature解决方法

很多会员使用着ChatGPT付费创作系统&#xff0c;特别是新安装系统后前端输入对话时提示错误undefined index:temperature&#xff0c;检查了反代、检查了KEY均正常&#xff0c;这问题主要是因为后台设置里新用户免费送对话次数为空&#xff0c;没设置赠送次数原因&#xff0c;导…

【BEV感知算法概述——下一代自动驾驶感知算法】

文章目录 BEV感知算法概念BEV感知算法数据集介绍BEV感知算法分类BEV感知算法的优劣小结 BEV感知算法概念 Bird’s-Eye-View&#xff0c;鸟瞰图&#xff08;俯视图&#xff09;。BEV感知算法存在许多的优势。 首先&#xff0c;BEV视图存在遮挡小的优点&#xff0c;由于视觉的透…

腾讯面试:SaaS多租户,如何设计?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;最近有小伙伴拿到了一线互联网企业网易、美团、字节、如阿里、滴滴、极兔、有赞、希音、百度、美团的面试资格&#xff0c;遇到很多很重要的面试题&#xff1a; 多租户设计&#xff0c;如何 技术选型&#xff…

分布式事务2PC二阶段提交详解

文章目录 概述和概念执行过程和工作流程特点优劣势应用场景总结demo代码样例 概述和概念 二阶段提交&#xff08;2PC&#xff09;是一种用于确保在分布式系统中的所有节点在进行事务提交时保持一致性的算法 二阶段提交&#xff08;Two-Phase Commit&#xff0c;2PC&#xff09…

JWT、session、token区别和实现

JWT、session、token区别和实现 这里需要用到Redis和JWT。 springboot版本是3.2.1 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><…

vitis HLS中实现canny算法的IP核

一、前言 canny边缘检测主要用于提取图像的边缘&#xff0c;是最常用且有效的边缘检测算法。在AMD赛灵思提供的库函数中&#xff0c;使用xf::cv::Canny和xf::cv::EdgeTracing两个函数实现canny边缘提取。本文举例说明如何在vitis HLS 2023.1中实现canny算法。 二、xf::cv::Cann…

GoogLeNet(V1)

目录 一、GooLeNet介绍 1、模型设计的motivation 2、Inception块 3、GoogLeNet架构 4、Inception后续变种 5、总结 二、代码实现 1、Inception块 2、GoogLeNet模型 3、训练模型 4、总结 一、GooLeNet介绍 GoogLeNet是由Google团队于2014年提出的深度卷积神经网络架构…

c++缺省参数与函数重载(超详细)

文章目录 前言一、缺省参数1.缺省参数的概念与使用2.缺省参数的分类3.缺省参数注意事项 二、函数重载1.什莫事函数重载2.函数重载的几种形式3.函数重载与缺省值的结合4.为什么c支持函数重载&#xff1f;&#xff1f; 总结 前言 在本文章中&#xff0c;我们将要详细介绍一下Cc缺…