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的证书是否还存在。如果证书为空或者已删除,需要重新申请证书并重新编译打包新的软件包。

点击放大

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

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

相关文章

HTML_CSS的基本选择器的使用及其作用范围和优先级

目录 ✨CSS的使用:行内样式内部样式外部样式 ✨CSS基本选择器:id选择器class选择器标签选择器 ✨优先级:选择器的优先级样式表的优先级 ✨CSS的使用: 根据定义CSS的位置不同,分为行内样式、内部样式和外部样式 行内样…

数据库中对时间的操作(mySql、Oracle、pgSql)

目录 mySql PGSQL oracle 两个日期年数差 月数差 天数差 小时差 加一年 加一月 加一天 加一小时 加一分钟 加一秒 mySql -- %Y-%m-%d %H:%i:%s 区分大小写 m d i s小写 -- 两个日期年数差 SELECT TIMESTAMPDIFF(YEAR, STR_TO_DATE(2000-12-12,%Y-%m-%d), STR…

美颜SDK技术对比,深入了解视频美颜SDK的工作机制

如何在实时视频中呈现更加自然、美丽的画面,而这正是美颜SDK技术发挥作用的领域之一。本文将对几种主流视频美颜SDK进行深入比较,以揭示它们的工作机制及各自的优劣之处。 随着科技的不断进步,美颜技术已经从简单的图片处理发展到了视频领域…

Pandas中级教程——数据合并与连接

Python Pandas 中级教程:数据合并与连接 Pandas 是一款强大的数据处理库,提供了丰富的功能来处理和分析数据。在实际数据分析中,我们常常需要将不同数据源的信息整合在一起。本篇博客将深入介绍 Pandas 中的数据合并与连接技术,帮…

AI绘画室内设计提示词大全(持续更新)

当你开始使用AI绘画进行室内设计(interior design)时,选择合适的提示词和关键概念对于成功构思和实现你的设计理念至关重要。以下是一些关于室内设计的提示词,涵盖了空间类型、设计风格、光线效果、布局规划、材料类型以及其他要求…

硬件基础-电容

电容 本质:电容两端电压不能激变,所以可以起到稳定电压作用。充放电。 电容量的大小: 想使电容容量大:①使用介电常数高的介质 ②增大极板间的面积 ③减小极板间的距离。 品牌 国外:村田 muRata、松下 PANASONIC、三星 SAMSUNG、太诱 TAI…

sql_lab靶场搭建以及存在的一些问题

sql_lab靶场搭建问题 首先检查小皮版本 把小皮改到5.3.29版本如果没有可以直接点击更多版本进行选择安装 当版本不对时则会暴出这种错误 SETTING UP THE DATABASE SCHEMA AND POPULATING DATA IN TABLES: Fatal error: Uncaught Error: Call to undefined function mysql_co…

React面试题:Component,Element,Instance之间有什么区别和联系?

回答思路:分别是什么-->不同点-->相同点 Component(组件):一个组件可以通过多种方式声明,可以是带一个render()方法的类,也可以是一个函数,这两种情况下&#xff…

【QT】QTreeWidget控件的使用

目录 1.概述 2.QTreeWidget控件功能接口 2.1 构造函数 2.2 添加和访问顶级条目 2.3 条目访问函数 2.4 当前条目的操作 2.5 条目查找和排序 2.6 条目显示和运行时条目编辑 2.7 信号 2.8 槽函数 2.9 基类 QTreeView 的函数 2.10 树头条目 2.11选中行为和选中模式 3…

2018年第七届数学建模国际赛小美赛A题空中加油飞行计划解题全过程文档及程序

2018年第七届数学建模国际赛小美赛 A题 空中加油飞行计划 原题再现: 太平洋中部一个小岛上的居民被自然灾害困住。救援人员需要派遣一架轻型飞机运送少量急救药品到岛上,并运送一名重伤者到医疗基地求救。岛上有一个无人值守的简易机场,可以…

50ms时延工业相机

华睿工业相机A3504CG000 参数配置: 相机端到端理论时延:80ms 厂家同步信息,此款设备帧率上线23fps,单帧时延:43.48ms,按照一图缓存加上传输显示的话,厂家预估时延在:80ms 厂家还有…

基于Docker Compose的容器编排技术

1.1 介绍一下 Docker 建议我们每⼀个容器中只运⾏⼀个服务,因为 Docker 容器本身占⽤资源极少,所以最好是 将每个服务单独的分割开来但是这样我们⼜⾯临了⼀个问题? 如果我需要同时部署好多个服务,难道要每个服务单独写 Dockerf…

深入了解Linux信号:作用、产生、捕捉和阻塞

这里写目录标题 引言1. 信号的基本概念1.1 信号的分类和编号:1.2 查看信号默认处理动作1.3 信号的作用1.4 信号的产生 2. 常见信号及其作用示例 3. 信号捕捉和处理3.1 信号捕捉函数3.2 sigaction 函数示例 4. 信号阻塞示例 结语 引言 Linux操作系统中,信…

EM(Expectation-Maximum)算法

EM算法 简介 EM算法的核心分为两步 E步(Expection-Step)M步(Maximization-Step) 因为在最大化过程中存在两个参量 r , θ r,\theta r,θ,其中若知道 r r r,则知道 θ \theta θ;若知道 θ \…

mybatis一级缓存二级缓存和redis的区别

今天读到关于mybatis一级缓存、二级缓存的知识,然后看了一下mybatis一级缓存、二级缓存的应用场景,当时就感觉和redis很像,于是就查看了一下它们两个的区别。 Redis 和 MyBatis 一级缓存二级缓存的主要区别在于缓存的数据结构和存储方式上。…

机器学习之线性回归(Linear Regression)

概念 线性回归(Linear Regression)是机器学习中的一种基本的监督学习算法,用于建立输入变量(特征)与输出变量(目标)之间的线性关系。它假设输入变量与输出变量之间存在线性关系,并试图找到最佳拟合线来描述这种关系。 在简单线性回归中,只涉及两个变量:一个是自变量…

java常用正则表达式验证方法

1、正则表达式来验证验证11位数字格式的中国大陆电话号码 public boolean validatePhoneNumber(String phoneNumber) {String regex "^1[3-9]\\d{9}$";return phoneNumber.matches(regex); }正则表达式“^1[3-9]\d{9}”用于匹配11位数字格式的中国大陆电话号码。其…

Go环境安装

目录 下载地址 安装 macos环境 window及其他环境 GOPROXY 非常重要 Go开发编辑器 下载地址 Go官网下载地址:https://golang.org/dl/ Go官方镜像站(推荐):https://golang.google.cn/dl/ 选择要下载的系统版本: 安装 注意…

Github 2023-12-19开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-19统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目4Rust项目2非开发语言项目2C#项目1TypeScript项目1 Avalonia: 跨平台UI框架和Avalonia XPF 创建周…

弹幕情感分析可视化

弹幕情感分析可视化 引言1. 弹幕数据爬取2. 弹幕数据处理3. 弹幕数据可视化4. 弹幕情感分析5. 创新点:弹幕情感倾向分布 引言 当今互联网时代,大量的弹幕数据蕴含着丰富的信息,通过对这些数据进行分析和可视化,我们能够深入了解用…