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

一、概述

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

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

二、创建项目

  1. 登录 AppGallery Connect ,点击“我的项目”。
  2. 在项目页面中点击“添加项目”。
  3. 在“创建项目”页面中输入项目名称后 ,点击“创建并继续”。

  1. 项目创建后会进入“开通分析服务”页面。此时可以开通分析服务,以便通过报表查看相关指标数据,也可以创建完项目后开通。

三、创建HarmonyOS应用/元服务

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

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

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

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

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

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

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

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

  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”。

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

4.2 申请发布证书

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

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

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

4.3 申请发布Profile

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

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

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以前的应用/元服务签名界面

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

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应用”页签。

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

六、常见问题

6.1 提示“HarmonyOS hapAppProvision文件非法”

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

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

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

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

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

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

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

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

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

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

为了能让大家更好的学习鸿蒙 (Harmony OS) 开发技术,这边特意整理了《鸿蒙 (Harmony OS)开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05

《鸿蒙 (Harmony OS)开发学习手册》

入门必看:https://qr21.cn/FV7h05

  1. 应用开发导读(ArkTS)
  2. 应用开发导读(Java)

HarmonyOS 概念:https://qr21.cn/FV7h05

  1. 系统定义
  2. 技术架构
  3. 技术特性
  4. 系统安全

如何快速入门:https://qr21.cn/FV7h05

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

开发基础知识:https://qr21.cn/FV7h05

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

基于ArkTS 开发:https://qr21.cn/FV7h05

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

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

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

相关文章

Vue3中props传参(多种数据类型传参方式)

在Vue3中,props接收的type类型有以下几种: 1. String:字符串类型 2. Number:数字类型 3. Boolean:布尔类型 4. Array:数组类型 5. Object:对象类型 6. Date:日期类型 7. Func…

第二证券:燃料电池产业进入发展快车道 多家公司披露布局进展

据悉,日前太原钢铁(集团)有限公司初次开发出超级超纯铁素体TFC22-X连接体材料并结束了批量供货,填补了国内空白。 燃料电池电堆连接体材料是行业中最为要害的战略材料。研发团队打破了特别元素含量精确操控的要害技术瓶颈&#x…

【智能算法】基于黄金正弦和混沌映射思想的改进减法优化器算法

减法优化器(Subtraction-Average-Based Optimizer,SABO)是2023年刚出的智能优化算法。目前知网中文期刊基本搜不到,并且可以遇见未来一年文章也很少。SABO算法原理简单,算上初始化粒子,总共不超过6个公式。…

AI 学习笔记(持续更新)

What is AI PS :代码块里的统一是 gpt4 回复 在大模型中 1 b 10 亿参数的含义 AI 目前是什么? 目前的人工智能(AI)是指使计算机和机器能够模仿人类智能的技术,包括学习、推理、解决问题、知觉、语言理解等能力。A…

【论文阅读笔记】Prompt-to-Prompt Image Editing with Cross-Attention Control

【论文阅读笔记】Prompt-to-Prompt Image Editing with Cross-Attention Control 个人理解思考基本信息摘要背景挑战方法结果 引言方法论结果讨论引用 个人理解 通过将caption的注意力图注入到目标caption注意力中影响去噪过程以一种直观和便于理解的形式通过修改交叉注意力的…

界限与不动产测绘乙级申请条件

整理一期关于测绘资质界限与不动产测绘乙级资质的申请要求 测绘资质是由测绘资质主管部门自然资源部制定的 想要了解标准、正规的申请条件,可以到当地省份的政务网搜索测绘资质办理相关标准(例如下图) 1、通用标准 http://gi.mnr.gov.cn/20…

基于多模态大数据的国家安全风险态势感知模型构建

源自:情报杂志 “人工智能技术与咨询” 发布 摘要 [研究目的]为强化国家安全情报能力,推动风险监测预警能力提升,构建基于多模态大数据的国家安全风 险态势感知模型。 [研究方法]首先,对国家安全风险态势感知进行阐释;然后,分析多模态大数据驱动下…

【黑马甄选离线数仓day07_常见优化手段及核销主题域开发】

1.常见优化手段 1.1 分桶表基本介绍 分桶表: 分文件的, 在创建表的时候, 指定分桶字段, 并设置分多少个桶, 在添加数据的时候, hive会根据设置分桶字段, 将数据划分到N个桶(文件)中, 默认情况采用HASH分桶方案 , 分多少个桶, 取决于建表的时候, 设置分桶数量, 分了多少个桶最终…

每日一题:LeetCode-202.面试题 08.06. 汉诺塔问题

每日一题系列(day 07) 前言: 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &#x1f50e…

全新仿某度文库网站源码/在线文库源码/文档分享平台网站源码/仿某度文库PHP源码

源码简介: 全新仿某度文库网站源码/在线文库源码,是以phpMySQL开发的,它是仿某度文库PHP源码。有功能免费文库网站 文档分享平台 实现文档上传下载及在线预览。 仿百度文库是一个以phpMySQL进行开发的免费文库网站源码。仿某度文库实现文档…

每日一练:约瑟夫生者死者小游戏

1. 问题描述 约瑟夫问题(Josephus problem)是一个经典的数学和计算机科学问题,源于犹太历史学家弗拉维奥约瑟夫斯(Flavius Josephus)的著作《犹太战记》。问题的描述如下:   在这个问题中,有n…

【JavaEE初阶】 认识文件与Java中操作文件

文章目录 🌴认识文件🚩树型结构组织和目录🚩文件路径(Path)🚩知识扩展 🎍Java 中操作文件🚩File 概述📌属性📌构造方法📌方法 🚩File使…

R语言基础入门(学习笔记通俗易懂版)

文章目录 R语言预备知识获取工作目录设置工作目录注释变量名的命名赋值变量的显示查看与清除变量函数帮助文档查询函数安装R包文件的读取文件的输出软件的退出与保存 R语言语法向量向量的创建向量的索引(向量元素的提取、删除、添加)向量长度的获取向量的…

苹果手机怎么卸载微信?记得掌握这两种方法!

微信是一款社交应用程序,在聊天过程中,我们会经常发送和接收各种形式的信息。随着时间的推移,微信缓存的文件会越来越多,占用的存储空间也会逐渐增加。 卸载微信可以释放手机内存,提高手机的运行速度。那么&#xff0…

Matlab进阶绘图第34期—双三角热图

在《Matlab进阶绘图第29期—三角热图》中,我分享过三角热图的绘制模板。 然而,有的时候,为了节省版面或者方便对比等,需要在一张图上绘制两个三角热图的组合形式,且每个三角热图使用不同的配色方案, 由于…

谈谈中间件设计的思路

前言 想要设计和真正理解中间件的架构理论和思想。对于开发来说需要具备三个关键的能力 1:基础通用技术的深入理解和运用2:了解和熟悉常见中间件的设计思想,且有自己的感悟,并且能按照自己的理解模仿写一写3:业务的高度理解能力…

pgsql 更新A表的x字段通过查询b表的z字段

查询表t_local_warning_hit_source的send_time 更新到表t_local_warning_source WITH t2 AS ( SELECT ID, send_time FROM t_local_warning_hit_source WHERE send_time > 2023-09-27 00:00:00 AND send_time < 2023-11-28 00:00:00 ) UPDATE t_local_warning_source t…

20-多线程

20.1线程简介 世间有很多工作都是可以同时完成的。例如&#xff0c;人体可以同时进行呼吸、血液循环、思考问题等活用户既可以使用计算机听歌&#xff0c;也可以使用它打印文件。同样&#xff0c;计算机完全可以将多种活动同时进这种思想放在 Java 中被称为并发&#xff0c;而…

GUI加分游戏

需求目标 这个简单的游戏窗口包含一个得分标签和一个按钮。每次点击按钮时&#xff0c;得分增加1&#xff0c;并更新得分标签的显示。 效果 源码 /*** author lwh* date 2023/11/28* description 这个简单的游戏窗口包含一个得分标签和一个按钮。每次点击按钮时&#xff0c;…

rider编辑器抛出异常 忽略try catch

如题 代码加了try catch 后用户使用体验是好了 但开发过程中 报错了不方便排查 启用这些配置后 trycatch里的异常也会抛出 补充一下默认配置,方便还原