HarmonyOS NEXT 诗词元服务项目开发上架全流程实战(二、元服务与应用APP签名打包步骤详解)

在HarmonyOS应用开发过程中,发布应用到应用市场是一个重要的环节。没经历过的童鞋,首次对HarmonyOS的应用签名打包上架可能感觉繁琐。需要各种秘钥证书生成和申请,混在一起分不清。其实搞清楚后也就那会事,各个文件都有它存在的作用。为了确保应用的安全性和可信度,开发者需要遵循一定的步骤和流程来完成签名、打包和发布。本文将详细说明这些步骤以及每种文件的作用,帮助开发者顺利完成HarmonyOS应用的发布。

流程概述

开发者完成HarmonyOS应用/服务开发后,需要将应用/服务打包成App Pack(.app文件),用于上架到AppGallery Connect(华为应用市场)。发布应用/服务的流程如下图所示:

在这里插入图片描述
下述内容,注意区分 p12, csr, cer, p7b等文件,搞清楚了这几个文件后打包签名太简单了。

一、申请发布证书cer

证书是为HarmonyOS应用/元服务配置签名信息的数字证书,可保障软件代码完整性和发布者身份真实性。证书格式为.cer,包含公钥、证书指纹等信息。

注意事项:

  1. 每个账号最多可申请3个发布证书。
  2. 若Profile状态变为“失效”或“已吊销”,表示当前Profile已不可用,您需要重新申请Profile。

前置条件:
申请发布证书,是需要登录AppGallery Connect网站的。登录后选择“证书、APP ID和Profile”,在左侧导航栏选择“证书、APP ID和Profile > 证书”,进入“证书”页面,点击“新增证书”,选择证书类型和上述步骤生成的CSR文件,点击提交即可创建cer证书

AppGallery Connect网站是华为提供的一个一站式服务平台,旨在为开发者提供移动应用的全生命周期服务,包括应用创意、开发、分发、运营和分析等各个环节。

‌AppGallery Connect网站地址:
https://developer.huawei.com/consumer/cn/agconnect/

需要注意的是:在申请前,需要现在本机,即你的dev studio开发IDE中,先生成你的私钥和证书请求文件csr。注意记住你的密码。在IDE的build菜单中,选取key和证书请求文件生成。
创建CSR文件和p12文件:
在这里插入图片描述
在这里插入图片描述
Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。

单击OK按钮,创建CSR文件成功,可以在存储路径下获取生成的密钥库文件(.p12)和证书请求文件(.csr)。
拿到了这个csr文件,登录AppGallery Connect网站后方可操作下载cer证书。

二、申请发布Profile

Profile文件是应用签名时用于存储证书链的文件格式,通常用于存储根证书、中间证书和最终用户证书。它描述了应用的包名、数字证书信息、权限列表等。每个HarmonyOS应用/元服务包中均必须包含一个Profile文件。

Profile文件类型:

  • 调试Profile: 适用于调试环境,允许使用多个调试设备或在断网情况下调试。
  • 发布Profile: 适用于正式发布环境,确保应用的安全性和可信来源。
三、打包签名APP

开发者完成HarmonyOS应用/服务开发后,需要将应用/服务打包成App Pack(.app文件),用于上架到AppGallery Connect。打包过程需要使用发布证书和Profile文件对应用/服务进行签名。不签名是无法安装的。当然在模拟器中可以不用签名,真机上都需要签名,无论是debug还是release版本都需要签名方能安装。

下面介绍下签名步骤:
在IDE的 File > Project Structure > Project > Signing Configs窗口中,取消勾选“Automatically generate signature”(如果是HarmonyOS应用,请勾选“Support HarmonyOS”),然后配置工程的签名信息。

在这里插入图片描述
看到了吧:你的密码,你生成的p12文件,和从网站上下载的证书文件cer, 每个应用单独的p7b文件都派上用处了。注意,前面的都能复用,唯独p7b文件可是每个应用需要单独一个。从AppGallery Connect网站后台创建并下载得来。也就是说,你要发布应用或元服务,需要先在后台创建一个应用信息,并下载下来p7b文件方可打包签名。

四、发布元服务

元服务是指HarmonyOS中可被其他应用发现和调用的服务。发布元服务同样需要经过签名和打包步骤,最终通过AppGallery Connect发布。

各种证书和文件的用途详解

在HarmonyOS应用上架过程中,涉及到多种秘钥和证书文件,每种文件都有其特定的用途。

  1. P12文件

    • 用途: P12文件是一种包含私钥和证书的二进制文件格式,主要用于应用签名。
    • 场景: 当需要为应用生成签名时,需使用该文件。
  2. CSR文件

    • 用途: CSR(Certificate Signing Request)文件是证书签名请求文件,包含公钥和申请者身份信息。
    • 场景: 向证书颁发机构申请证书时,会先生成CSR文件并提交。
  3. CER文件

    • 用途: CER文件为数字证书,通常包含公钥和持有者的信息,用于验证应用的签名。
    • 场景: 从CA获取到证书时,会得到一个CER文件,该文件需要在应用上架时提供。
  4. P7B文件

    • 介绍: P7B文件是一种包含证书链的文件格式,通常用于存储根证书、中间证书和最终用户证书。
    • 用途: 应用签名时,可能需要包含完整的证书链以确保信任。Profile格式为.p7b,描述了应用的包名、数字证书信息、权限列表等,必不可少。
形象化解释

通过以下比喻来帮助记忆和理解这些证书和文件之间的关系和作用:

  • 密钥库文件(P12文件) - “保险箱和钥匙”
    比喻为一个“保险箱”,里面存放着我们最重要的资产——私钥和证书。在应用发布时,这个“保险箱”是必不可少的,它确保我们的应用是安全的,来自可信的来源。“钥匙”就是我们用来打开这个保险箱的密码,只能由我们自己掌握。

  • 证书请求文件(CSR文件) - “申请表”
    可以将CSR文件比喻为申请一个新的银行账户时需要填写的“申请表”。这个表格包含了我们的身份信息(公钥和其他识别信息),当我们想要向证书颁发机构申请正式的“身份证明”(数字证书)时,就需要提交这个“申请表”。

  • 数字证书文件(CER文件) - “身份证”
    CER文件就像是我们的“身份证”。当我们通过申请表(CSR)获得了这个证书,它就证明了我们的身份。这个“身份证”用于验证我们所发布的应用的合法性和来源,让用户(或者操作系统)相信这个应用是安全的。

  • 证书链文件(P7B文件) - “身份背景调查”
    P7B文件可以看作是一个“身份背景调查报告”。它包含了多个证书的信息(根证书、中间证书等),这些证书共同确保了我们所持有的“身份证”是有效的,避免了伪造的可能性。当我们要展示我们的身份时,这份调查报告为认证提供了更强的信任。

总结

通过上述步骤和文件的介绍,相信各位开发者对于如何将HarmonyOS应用/元服务发布AppGallery Connect有了更清晰的认识。希望这篇博文能够为各位开发者提供帮助,顺利完成应用的签名、打包和发布。

作者介绍

作者:csdn猫哥

原文链接:https://blog.csdn.net/yyz_1987,转载请注明出处。

团队介绍

坚果派团队由坚果等人创建,团队拥有12个华为HDE带领热爱HarmonyOS/OpenHarmony的开发者,以及若干其他领域的三十余位万粉博主运营。专注于分享HarmonyOS/OpenHarmony、ArkUI-X、元服务、仓颉等相关内容,团队成员聚集在北京、上海、南京、深圳、广州、宁夏等地,目前已开发鸿蒙原生应用和三方库60+,欢迎交流。

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

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

相关文章

【BotSharp框架示例 ——实现聊天机器人,并通过 DeepSeek V3实现 function calling】

BotSharp框架示例 ——实现聊天机器人,并通过 DeepSeek V3实现 function calling 一、一点点感悟二、创建项目1、创建项目2、添加引用3、MyWeatherPlugin项目代码编写4、WeatherApiDefaultService项目代码编写5、WebAPI MyWeatherAPI 的项目代码编写6、data文件夹中…

百度CarLife实现手机车机无缝互联

百度CarLife是百度推出的智能车联网解决方案,通过手机与车机互联技术,为用户提供安全便捷的车载互联网服务体验。 CarLife 实现手机与车机屏幕的无缝互联,让应用内容同步至车载系统,减少驾驶过程中操作手机的频率,提升…

基于STM32的虚线绘制函数改造

改造前: uint16_t DrawLine(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2) { // GUI_DrawLine( x1, y1, x2, y2); // return 1;int16_t deltaX, deltaY;int16_t error, stepErrorLT, stepErrorGE;int16_t stepX, stepY;int16_t steep;int16_t…

Java高频面试之并发编程-10

hello啊,各位观众姥爷们!!!本baby今天来报道了!哈哈哈哈哈嗝🐶 面试官:ThreadLocalMap 怎么解决 Hash 冲突的? ThreadLocalMap 是 ThreadLocal 的核心实现,它采用 开放…

AI应用实战:Excel表的操作工具

有个小需求是这样的,需要在一份数据表里,将1000多个客户的月报数据分别单独截图存档,有客户需要的时候就要发给客户,截图下来的也是以客户为命名,这样查找时也比较容易匹配上。 在没有写工具之前,以往财务…

使用 DoH 查询域名 —— 以 core.tantanapp.com 为例的实战分析

前言 在现代 iOS 应用中,为了确保 DNS 查询的隐私和完整性,我们可以使用 DoH(DNS over HTTPS) 来查询域名信息。 本文将以 https://cloudflare-dns.com/dns-query?namecore.tantanapp.com&typeA 为例,通过 Postm…

Python----卷积神经网络(卷积为什么能识别图像)

一、卷积的概念 卷积是一种数学运算,通常用于信号处理和图像分析。在卷积神经网络中,卷积操作用于提取输入数据(如图像)中的特征。通过将输入数据与卷积核(滤波器)进行卷积运算,CNN能够识别图像…

linux FTP服务器搭建

FTP服务器搭建 系统环境:ubuntu 搭建方式:win系统下通过ssh连接ubuntu,搭建FTP服务 一、ssh连接 ssh -p 端口 用户名IP ssh -p 22 ubuntu192.168.1.109 密码:ubuntu123456 二、安装配置FTP服务器 1、安装 sudo apt install v…

语音合成之十韵律之美:TTS如何模拟语音的节奏和语调

韵律之美:TTS如何模拟语音的节奏和语调 1. 引言:韵律在语音合成中的重要性1.1 追求自然的TTS:超越可懂度1.2 定义韵律:语音的音乐1.3 韵律为何重要:传递意义、情感与自然度 2. TTS韵律建模的基础技术2.1 利用文本&…

基于强化学习的用于非刚性图像配准的引导式超声采集|文献速递-深度学习医疗AI最新文献

Title 题目 Guided ultrasound acquisition for nonrigid image registration usingreinforcement learning 基于强化学习的用于非刚性图像配准的引导式超声采集 01 文献速递介绍 超声成像通常用于引导手术和其他医疗程序,在这些过程中,临床医生会持…

数据库中DDL、DML、DCL的区别是什么?

数据库中DDL、DML、DCL的区别是什么? 在数据库的使用过程中,SQL(结构化查询语言)常常被用来执行不同的操作,主要分为三类:DDL(数据定义语言)、DML(数据操纵语言&#xf…

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成

海量聊天消息处理:ShardingJDBC分库分表、ClickHouse冷热数据分离、ES复合查询方案、Flink实时计算与SpringCloud集成 一、背景介绍 每天有2000万条聊天消息,一年下来几千万亿海量数据。为应对这种规模的数据存储和处理需求,本文将从以下几…

Vim 中替换字符或文本

在 Vim 中替换字符或文本可以使用 替换命令(substitute),其基本语法为: :[range]s/old/new/[flags]1. 基本替换 命令说明:s/foo/bar/替换当前行的第一个 foo 为 bar:s/foo/bar/g替换当前行的 所有 foo 为 bar:%s/foo/bar/g替换 …

当传统美术馆遇上数字革命:观众体验将迎来哪些颠覆性变革?

当数字科技与艺术创作深度交织,美术馆与艺术机构正经历前所未有的颠覆性浪潮。这是否宣告传统展览空间已正式跨入数字媒介主导的新纪元?投影映射与虚拟现实技术不断突破物理限制,画布与雕塑的边界在光影与代码中逐渐消融。这场革命不仅重构了…

内容/社区APP增长:用Deeplink让用户分享的内容“一键直达”

对于内容平台和互动社区APP而言,优质内容的自发传播是用户增长和活跃度提升的核心驱动力之一。用户发现一篇深度好文、一个精彩视频或是一个引人入胜的讨论帖,自然而然地想要分享给好友。然而,这个看似简单的分享动作,却往往在触达…

Uniapp:vite.config.js全局配置

目录 一、基本概述二、配置自动引入插件一、基本概述 vite.config.js 是一个可选的配置文件,如果项目的根目录中存在这个文件,那么它会被自动加载,一般用于配置 vite 的编译选项 二、配置自动引入插件 在项目命令行终端中执行如下代码 npm install unplugin-auto-import…

JavaScript 与 Java 学习笔记

一、JavaScript 简介 1. 定义 浏览器脚本语言:主要用于实现网页交互功能(鼠标点击、键盘输入响应等) 服务器端扩展:通过 Node.js 运行时环境可进行后端开发 2. 核心特点 动态性:可实时修改 DOM 结构(增…

Shell脚本-随机数实战案例

在Shell脚本编程中,生成随机数是一项非常实用的技能。无论是用于模拟、测试、游戏开发还是安全相关的应用(如生成密码),能够灵活地生成随机数都是非常有用的。本文将通过几个实际的应用案例来展示如何在Shell脚本中使用随机数解决…

面试算法高频08-动态规划-03

练习题 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每…

基于 EFISH-SBC-RK3588 的无人机多光谱/红外热成像边缘计算方案

一、硬件架构设计‌ ‌核心算力平台(EFISH-SBC-RK3588)‌ ‌处理器性能‌:搭载 8 核 ARM 架构(4Cortex-A762.4GHz 4Cortex-A551.8GHz),集成 6 TOPS NPU 与 Mali-G610 GPU,支持多光谱图像实时融…