鸿蒙应用开发之打包与上架

一、概述

当您开发、调试完HarmonyOS应用/元服务,就可以前往AppGallery Connect申请上架,华为审核通过后,用户即可在华为应用市场获取您的HarmonyOS应用/元服务。

HarmonyOS会通过数字证书与Profile文件等签名信息来保证应用的完整性,需要上架的HarmonyOS应用/元服务都必须通过签名校验,所以上架前,您需要先完成签名操作。

二、创建项目

  1. 登录AppGallery Connect,点击“我的项目”。
  2. 在项目页面中点击“添加项目”。
  3. 在“创建项目”页面中输入项目名称后 ,点击“创建并继续”。
    image.png
  4. 项目创建后会进入“开通分析服务”页面。此时可以开通分析服务,以便通过报表查看相关指标数据,也可以创建完项目后开通。

三、创建HarmonyOS应用/元服务

  1. 在项目列表中点击需要操作的项目。
  2. 点击“添加应用”创建应用/元服务。
  • 项目中没有应用,在“项目设置”页面点击“添加应用”。

image.png

  • 项目中有应用,展开顶部应用列表框,点击“添加应用”。

image.png

3,填写相关信息,点击“确认”。

  • 选择平台:选择“APP(HarmonyOS)”。
  • 应用包名:需要和app.json5文件(Stage模型)或config.json文件(FA模型)中的“bundleName”值保持一致。
  • “是否元服务”:HarmonyOS应用选择“否”,元服务选择“是”。

image.png

四、编译打包HarmonyOS应用/元服务

完整编译流程如下图所示。

image.png

4.1 生成密钥和证书请求文件

  1. 打开DevEco Studio,菜单选择“Build > Generate Key and CSR”。
  2. Key Store File可以点击“Choose Existing”选择已有的密钥库文件(存储有密钥的.p12文件),跳转至步骤4继续配置;如果没有密钥库文件,点击“New”,跳转至步骤3进行创建。

image.png

  1. 在“Create Key Store”界面,填写密钥库信息后,点击“OK”。
  • Key Store File:设置密钥库文件存储路径,并填写p12文件名。
  • Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
  • Confirm Password:再次输入密钥库密码。
  1. 在“Generate Key and CSR”界面继续填写密钥信息后,点击“Next”。
  • Alias:密钥的别名信息,用于标识密钥名称。请记住该别名,后续签名配置需要使用。
  • Password:密钥对应的密码,与密钥库密码保持一致,无需手动输入。
  • Validity:证书有效期,建议设置为25年及以上,覆盖元服务的完整生命周期。
  • Certificate:输入证书基本信息,如组织、城市或地区、国家码等。
  1. 在“Generate Key and CSR”界面设置CSR文件存储路径和CSR文件名,点击“Finish”。

image.png

CSR文件创建成功后,将在存储路径下获取生成密钥库文件(.p12)和证书请求文件(.csr)。

image.png

4.2 申请发布证书

  1. 登录AppGallery Connect,选择“用户与访问”。
  2. 左侧导航栏选择“证书管理”,进入“证书管理”页面,点击“新增证书”。

image.png

  1. 在弹出“新增证书”界面填写相关信息后,填写证书名称、证书类型和上传证书请求文件(CSR)等内容,点击“提交”。

image.png

  1. 证书申请成功后,“证书管理”页面展示生成的证书内容。
  • 点击“下载”将生成的证书保存至本地。
  • 每个帐号最多申请1个发布证书,如果证书已过期或者无需使用,点击“废除”即可删除证书。

image.png

4.3 申请发布Profile

  1. 登录AppGallery Connect,选择“我的项目”。
  2. 找到对应项目,点击项目卡片中需要发布的元服务。
  3. 导航选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面,点击“添加”。

image.png

  1. 在“HarmonyAppProvision信息”界面填写相关信息,点击“提交”。
  2. 申请成功,即可在“管理HAP Provision Profile”页面查看Profile信息。点击“下载”,将文件下载到本地。

image.png

4.4 配置签名信息

  1. 打开DevEco Studio,菜单选择“File > Project Structure”,进入“Project Structure”界面。
  2. 导航选择“Project”,点击“Signing Configs”页签,填写相关信息后,点击“OK”。

说明

API 9以前的应用/元服务需要选择“Release”页签。

    1. Store File:密钥库文件,选择生成密钥和证书请求文件时生成的.p12文件。
    2. Store Password:密钥库密码,需要与生成密钥和证书请求文件时设置的密钥库密码保持一致。
    3. Key alias:密钥的别名信息,需要与生成密钥和证书请求文件时设置的别名保持一致。
    4. Key password:密钥的密码,需要与生成密钥和证书请求文件时设置的密码保持一致。
    5. Sign alg:固定设置为“SHA256withECDSA”。
    6. Profile file:选择申请发布Profile时下载的.p7b文件。
    7. Certpath file:选择申请发布Profile时下载的.cer文件。

API 9以前的应用/元服务签名界面

image.png

API 9应用/元服务签名界面

image.png

4.5 编译打包

  1. 打开DevEco Studio,菜单选择“Build > Build Hap(s)/APP(s) > Build APP(s)”。
  2. 等待编译构建签名的HarmonyOS应用/元服务,编译完成后,可获取用于上架的软件包。
  • API 9以前的应用/元服务软件包获取路径:工程目录build > outputs > app > release目录。
  • API 9应用/元服务软件包获取路径:工程目录build > outputs > default目录。

五、上架HarmonyOS应用/元服务

  1. 登录AppGallery Connect,选择“我的应用”。
  2. 在应用列表首页中点击“HarmonyOS应用”页签。

image.png

  1. 点击待发布的应用/元服务,在左侧导航栏选择“应用信息”菜单。
  2. 填写应用的基本信息,如语言,应用名称,应用介绍等,上传应用图标,所有配置完成后点击“保存”。
  3. 填写版本信息,如发布国家或地区、上传软件包、提交资质材料等,所有配置完成后点击右上角“提交审核”。

六、常见问题

6.1 提示“HarmonyOS hapAppProvision文件非法”

上传软件包时,提示“HarmonyOS hapAppProvision文件非法,请重新上传”,一般是由于软件包中使用的发布Profile文件并非当前待发布应用的。

例如:下载Profile文件时,获取了A应用的Profile,然后将此Profile文件打入B应用包中。

image.png

那么在发布B应用时,上传软件包就会出现此错误。

image.png
所以出现此错误提示时,请排查软件包中使用的Profile文件是否为当前待发布应用的。我们可以以文本方式打开Profile文件,检查“bundle-name”的包名是否与待发布应用包名一致。

image.png

6.2 提示“使用的HarmonyAppProvision和证书不匹配”

上传软件包时,提示“使用的HarmonyAppProvision和证书不匹配,请重新上传”,一般是由于软件包中使用的发布证书与发布Profile文件中使用的发布证书不一致。

出现此错误提示时,请排查在IDE打包时配置的发布证书,是否为配置的Profile文件中使用的发布证书。

image.png

image.png

6.3 提示“软件包中使用证书已经失效”

上传软件包时,提示“软件包中使用证书已经失效,请重新上传”,一般是软件包中使用的证书已经删除或者过期。

出现此错误提示时,请访问AppGallery Connect申请Profile的页面,检查打包使用Profile的证书是否还存在。如果证书为空或者已删除,需要重新申请证书并重新编译打包新的软件包。

image.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数电实验-----实现74LS139芯片扩展为3-8译码器以及应用(Quartus II )

目录 一、74LS139芯片介绍 芯片管脚 芯片功能表 二、2-4译码器扩展为3-8译码器 1.扩展原理 2.电路图连接 3.仿真结果 三、3-8译码器的应用(基于74ls139芯片) 1.三变量表决器 2.奇偶校验电路 一、74LS139芯片介绍 74LS139芯片是属于2-4译码器…

Halcon Solution Guide I basics(0): 导论解析

文章目录 文章专栏前言文章目录翻译文档的说明 结论LOL比赛结局 文章专栏 Halcon开发 前言 今天开始看Halcon的官方文档。由于市面上的教学主要是以基础的语法,算子简单介绍为主。所以我还是得看官方的文本。别的不多说了。有道词英语词典,启动。 还有…

解决WPF项目xaml出现“正在等待IntelliSense完成”的问题

在WPF项目xaml里经常出现“正在等待IntelliSense完成”的场景,如下图: 解决办法 工具–选项

【智能家居】5、主流程设计以及外设框架编写与测试

目录 一、主流程设计 1、工厂模式结构体定义 (1)指令工厂 inputCmd.h (2)外设工厂 controlDevices.h 二、外设框架编写 1、创建外设工厂对象bathroomLight 2、编写相关函数框架 3、将浴室灯相关操作插入外设工厂链表等待被调…

Activiti7工作流

文章目录 一、工作流介绍1.1 概念1.2 适用行业1.3 应用领域1.4 传统实现方式1.5 什么是工作流引擎 二、什么是Activiti7?2.1 概述2.2 Activiti7内部核心机制2.3 BPMN2.4 Activiti如何使用2.4.1 整合Activiti2.4.2 业务流程建模2.4.3 部署业务流程2.4.4 启动流程实例…

大反转!OpenAI董事会辞职,求奥特曼重返OpenAI?「奥特曼24小时流放」大揭秘...

大家好,我是二狗。 想必大家昨天都被Sam Altman被董事会解雇的事情刷屏了。 然而才仅仅过去一天,OpenAI 董事会就反悔了!正和Sam Altman 商量让他重返CEO职位。 这一反转和Altman被炒鱿鱼一样突然,凄凄惨惨真真假假真真&#x…

340条样本就能让GPT-4崩溃,输出有害内容高达95%?OpenAI的安全防护措施再次失效

仅需340个示例微调GPT-4,即可绕过安全限制,让模型说出“枪支改装方法”、“生化武器制作过程”等有害内容? OpenAI的安全防护措施再次失效,攻击的成功率高达95%! 近日,美国顶尖大学UIUC与斯坦福联合对GPT…

python 的 import 机制

引言 对于初学 python,或多或少在 import 一个 module 时遇到过 ImportError: attempted relative import with no known parent package 这样的错误信息。对于初学 python,遇到这样的问题是因为在执行 python xxx.py 程序时,xxx.py 程序中 …

【心得】基于flask的SSTI个人笔记

目录 计算PIN码 例题1 SSTI的引用链 例题2 SSTI利用条件: 渲染字符串可控,也就说模板的内容可控 我们通过模板 语法 {{ xxx }}相当于变相的执行了服务器上的python代码 利用render_template_string函数参数可控,或者部分可控 render_…

分库分表

分库,分表,分库分表 “只分库“,“只分表“,“既分库又分表" 何时分库 在面对高并发的情况下,数据库连接成为性能瓶颈。当数据QPS过高导致数据库连接数不足时,考虑分库。在读多写少的场景下&#x…

基于Vue+SpringBoot的超市账单管理系统 开源项目

项目编号: S 032 ,文末获取源码。 \color{red}{项目编号:S032,文末获取源码。} 项目编号:S032,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统设计3.1 总体设计3.2 前端设计3…

SQL零基础入门教程,贼拉详细!贼拉简单! 速通数据库期末考!(十)

SQL 函数 SQL 拥有很多可用于计数和计算的内建函数。 比如: AVG() - 返回平均值 COUNT() - 返回行数 MAX() - 返回最大值 MIN() - 返回最小值 SUM() - 返回总和 FIRST() - 返回第一个记录的值 LAST() - 返回最后一个记录的值 GROUP BY 学习SQL函数前&#xff0c…

基于卡尔曼滤波实现行人目标跟踪

目录 1. 作者介绍2. 目标跟踪算法介绍2.1 目标跟踪背景2.2 目标跟踪任务分类2.3 目标跟踪遇到的问题2.4 目标跟踪方法 3. 卡尔曼滤波的目标跟踪算法介绍3.1 所用数据视频说明3.2 卡尔曼滤波3.3 单目标跟踪算法3.3.1 IOU匹配算法3.3.2 卡尔曼滤波的使用方法 3.4 多目标跟踪算法 …

腾讯云轻量数据库1核1G评测和租用价格表

腾讯云轻量数据库测评,轻量数据库100%兼容MySQL 5.7和8.0,腾讯云提供1C1G20GB、1C1G40GB、1C2G80GB、2C4G120GB、2C8G240GB五种规格轻量数据库,阿腾云atengyun.com分享腾讯云轻量数据库测评、轻量数据库详细介绍、特性、配置价格和常见问题解…

【算法】最小生成树——普利姆 (Prim) 算法

目录 1.概述2.代码实现2.1.邻接矩阵存储图2.2.邻接表存储图2.3.测试 3.应用 1.概述 (1)在一给定的无向图 G (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边,而 w(u, v) 代表此边的权重,若存在 T 为 E 的子集且为无循…

华为模拟器dhcp实验

实验需求,pc1 pc2 pc3 获取到地址且能ping通,pc1 pc2 为地址池模式,pc3为接口模式 上配置 #sysname AR1# dhcp enable # interface GigabitEthernet0/0/0ip address 10.0.47.254 255.255.255.0 dhcp select relaydhcp relay server-ip 10.0…

认识.NET Aspire:高效构建云原生应用的利器

简介 在几天前的.NET 8发布会上,来自微软的Glenn Condron和David Fowler为我们演示了.NET Aspire,在Visual Studio的帮助下,它展现出了惊人的开发效率。 短短的十分钟内,David现场演示了如何轻松创建了一个具有服务发现&#xf…

基于不确定性感知的脑肿瘤分割多维互学习

Uncertainty-Aware Multi-Dimensional Mutual Learning for Brain and Brain Tumor Segmentation 一基于不确定性感知的脑肿瘤分割多维互学习背景贡献实验方法Uncertainty-Aware Mutual Learning(具有不确定性的相互学习) Thinking 一基于不确定性感知的…

设计模式常见面试题

简单梳理下二十三种设计模式,在使用设计模式的时候,不仅要对其分类了然于胸,还要了解每个设计模式的应用场景、设计与实现,以及其优缺点。同时,还要能区分功能相近的设计模式,避免出现误用的情况。 什么是…

Git精讲

Git基本操作 创建Git本地仓库 git initgit clone 配置Git git config [--global] user.name "Your Name" git config [--global] user.email "emailexample.com"–global是一个可选项。如果使用了该选项,表示这台机器上所有的Git仓库都会使…