HarmonyOS4.0从零开始的开发教程19HarmonyOS应用/元服务上架

HarmonyOS(十七)HarmonyOS应用/元服务上架

概述

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

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

创建项目

  1. 登录AppGallery Connect,点击“我的项目”。

  2. 在项目页面中点击“添加项目”。

  3. 在“创建项目”页面中输入项目名称后 ,点击“创建并继续”。

    img

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

创建HarmonyOS应用/元服务

  1. 在项目列表中点击需要操作的项目。

  2. 点击“添加应用”创建应用/元服务。

    • 项目中没有应用,在“项目设置”页面点击“添加应用”。

    img

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

      img

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

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

    img

编译打包HarmonyOS应用/元服务

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

img

生成密钥和证书请求文件

  1. 打开DevEco Studio,菜单选择“Build > Generate Key and CSR”。

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

    img

  3. 在“Create Key Store”界面,填写密钥库信息后,点击“OK”。

    • Key Store File:设置密钥库文件存储路径,并填写p12文件名。
    • Password:设置密钥库密码,必须由大写字母、小写字母、数字和特殊符号中的两种以上字符的组合,长度至少为8位。请记住该密码,后续签名配置需要使用。
    • Confirm Password:再次输入密钥库密码。
  4. 在“Generate Key and CSR”界面继续填写密钥信息后,点击“Next”。

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

    img

  5. 在“Generate Key and CSR”界面设置CSR文件存储路径和CSR文件名,点击“Finish”。

    img

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

    img

申请发布证书

  1. 登录AppGallery Connect,选择“用户与访问”。

  2. 左侧导航栏选择“证书管理”,进入“证书管理”页面,点击“新增证书”。

    img

  3. 在弹出“新增证书”界面填写相关信息后,点击“提交”。

    参数说明
    证书名称不超过100个字符。
    证书类型选择“发布证书”。
    上传证书请求文件(CSR)上传生成密钥和证书请求文件时获取的.csr文件。

    img

  4. 证书申请成功后,“证书管理”页面展示生成的证书内容。

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

    img

申请发布Profile

  1. 登录AppGallery Connect,选择“我的项目”。

  2. 找到对应项目,点击项目卡片中需要发布的元服务。

  3. 导航选择“HarmonyOS应用 > HAP Provision Profile管理”,进入“管理HAP Provision Profile”页面,点击“添加”。

    img

  4. 在“HarmonyAppProvision信息”界面填写相关信息,点击“提交”。

    参数说明
    名称不超过100个字符。
    类型选择“发布”。
    选择证书选择申请的发布证书。
    申请受限权限若软件包因特殊场景要求使用受限权限,如读取、 添加、移除或更改联系人数据等,务必在此处进行申请,否则元服务将在审核时被驳回。
  5. 申请成功,即可在“管理HAP Provision Profile”页面查看Profile信息。点击“下载”,将文件下载到本地。

    img

配置签名信息

  1. 打开DevEco Studio,菜单选择“File > Project Structure”,进入“Project Structure”界面。

  2. 导航选择“Project”,点击“Signing Configs”页签,填写相关信息后,点击“OK”。

    说明

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

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

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

    img

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

    img

编译打包

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

    img

  3. 点击待发布的应用/元服务,在左侧导航栏选择“应用信息”菜单。

  4. 填写应用的基本信息,如语言,应用名称,应用介绍等,上传应用图标,所有配置完成后点击“保存”。

    详细配置指导请参见官网文档:HarmonyOS应用 元服务

  5. 填写版本信息,如发布国家或地区、上传软件包、提交资质材料等,所有配置完成后点击右上角“提交审核”。

    详细配置指导请参见官网文档:HarmonyOS应用 元服务

常见问题总结

上传软件包,提示“HarmonyOS hapAppProvision文件非法”,如何处理?

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

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

点击放大

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

点击放大

所以出现此错误提示时,请排查软件包中使用的Profile文件是否为当前待发布应用的。

以文本方式打开Profile文件,检查“bundle-name”的包名是否与待发布应用包名一致。

点击放大

上传软件包,提示“使用的HarmonyAppProvision和证书不匹配”,如何处理?

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

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

img

点击放大

上传软件包时,提示“软件包中使用证书已经失效”,如何处理?

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

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

点击放大

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

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

相关文章

xxl-job 分布式调度学习笔记

1.概述 1.1什么是任务调度 业务场景: 上午10点,下午2点发放一批优惠券 银行系统需要在信用卡到期还款日的前三天进行短信提醒 财务系统需要在每天凌晨0:10分结算前一天的财务数据,统计汇总 不同系统间的数据需要保持一致,这时…

3.2 内容管理模块 - 课程分类、新增课程、修改课程

内容管理模块-课程分类、新增课程、修改课程 文章目录 内容管理模块-课程分类、新增课程、修改课程一、课程分类1.1 课程分类表1.2 查询树形结构1.2.1 表自连接1.2.2 SQL递归 1.3 Mapper1.4 Service1.5 Controller1.6 效果图 二、添加课程2.1 需求分析2.2 数据表2.2.1 课程基础…

html之CSS的高级选择器应用

文章目录 一、CSS高级选择器有哪些呢?二、高级选择器的应用1、层次选择器后代选择器子选择器相邻兄弟选择器通用兄弟选择器 2、结构伪类选择器(不常用)3、属性选择器E[attr]E[attrval]E[attr^val]E[attr$val]E[attr*val] 一、CSS高级选择器有…

LeetCode 每日一题 Day 13 || BFS

2415. 反转二叉树的奇数层 给你一棵 完美 二叉树的根节点 root ,请你反转这棵树中每个 奇数 层的节点值。 例如,假设第 3 层的节点值是 [2,1,3,4,7,11,29,18] ,那么反转后它应该变成 [18,29,11,7,4,3,1,2] 。 反转后,返回树的根…

NLP论文阅读记录-ACL 2023 | 10 Best-k Search Algorithm for Neural Text Generation

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.相关工作2.1优势2.2 挑战 三.本文方法3.1 并行探索3.2 时间衰变3.3堆修剪3.4 模型得分 四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果 五 总结 前言 用于神经文本生成…

安全生产隐患排查治理信息化系统软件

安全隐患排查系统实现对重大危险源企业、安全隐患信息的登记、整改、复查、分类和统计。系统涵盖了安全隐患排查整治工作的各项基本内容,实现以安全隐患排查整治业务流为主线,处理流程简洁清晰、快速灵活;以排查整治流程为干线,快…

Linux--学习记录(3)

G重要编译参数 -g(GDB调试) -g选项告诉gcc产生能被GNU调试器GDB使用的调试信息,以调试程序编译带调试信息的可执行文件g -g hello.c -o hello编译过程: -E(预处理) g -E hello.c -o hello.i-S(编…

基于springboot+vue 的智能物流管理系统

简介 基于springbootvue 的智能物流管理系统 适用于 设计,课程设计参考与学习用途。仅供学习参考。 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料 **项目编号:springboot074 ** **…

算法专题二:滑动窗口

算法专题二:滑动窗口 一.长度最小的子数组:1.思路一:暴力解法2.思路二:滑动窗口双指针3.GIF题目解析:思路一:思路二: 二.无重复字符的最长子串:1.思路一:滑动窗口2.GIF题…

制作一个多行时正确宽度的Textview,Android Textview 换行时宽度过长 右侧空白区域挤掉页面元素的解决方案

优化 Android 布局:创建自适应宽度的 TextView 引言 在Android应用开发中,布局优化是提升应用性能和用户体验的关键环节之一。特别是对于那些内容密集型的应用,如何高效地展示和管理文本内容成为了一个挑战。最近,在处理一个布局…

【数据结构】模式匹配之KMP算法与Bug日志—C/C++实现

​🌈个人主页:Sarapines Programmer🔥 系列专栏:《数据结构奇遇记》🔖墨香寄清辞:墨痕寄壮志,星辰梦未满。 通幽径心凝意,剑指苍穹势如山。 目录 🌞1. 模式匹配的基本概念…

Scala多线程爬虫程序的数据可视化与分析实践

一、Scala简介 Scala是一种多种类型的编程语言,结合了针对对象编程和函数式编程的功能。它运行在Java虚拟机上,具有强大的运算能力和丰富的库支持。Scala常用于大数据处理、并发编程和Web应用程序开发。其灵活性和高效性编程成为编写多线程爬虫程序的理…

科技云报道:至简至强,新一代服务器的算力美学

科技云报道原创。 在这个时代,数据和计算的边界正在迅速扩张。 随着云计算、物联网和人工智能的日益成熟,对算力的需求已经突破了传统的限制,进入了一个全新的阶段。在这个阶段,不仅是算力的量级发生了变化,其性质和…

Mysql之约束上篇

Mysql之约束上篇 约束的概述为什么需要约束什么是约束约束的分类 非空约束作用关键字特点添加非空约束删除非空约束 唯一性约束关键字特点添加唯一约束关于复合唯一约束删除唯一约束查看索引 主键约束(非空唯一性约束)作用关键字特点添加主键约束关于复合主键删除主 约束的概述…

【MYSQL】-库的操作

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

[单片机软件]1.keil调整Group中的位置挪动

1.找到并选择箭头所指图标: 2.选中箭头所指进行你想要的Group进行移动 以上均为实测有效。

百度云IOCR自定义模版分类器进行文字识别(非通用文字识别)

模版管理 云账号登录 访问模版管理地址:点击下面地址新建模版 百度智能云-登录https://ai.baidu.com/iocr?castk4819agr76c7d09971d248#/templatelist/1 添加模版 如果有模版,识别效果不理想可以编辑上述模版,如果新的报表格式可以新建模…

如何访问AWS私有网络中的RDS (Mysql)

文章目录 小结问题及解决连接问题如何使用本地的Mysql Workbench对RDS进行访问 参考 小结 在AWS私有网络中部署了RDS (Mysql), 尝试通过外网成功地进行了访问. 问题及解决 连接问题 在AWS私有网络中部署了RDS (Mysql), 进行外网进行访问碰到了各种问题. 以下连接超时&…

【05】GeoScene海图或者电子航道图批量出图

出单张000数据参考上一篇博客,如果想同时出多张海图000数据,也是可以实现的。思路如下: 1 批量创建产品 GeoScene海事模块通过ProductDefinitions表和ProductCoverage要素类定义产品和AOI覆盖区,可支持批量导入产品信息和AOI覆盖…

@RequestMapping注解与其派生注解接收参数详解

一、前言 根据 HTTP 标准,HTTP 请求可以使用多种请求方法。 HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。 HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。 RequestMapping注解与其派生注解 在…