当前位置: 首页 > article >正文

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

一、概述

当您开发、调试完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.kler.cn/a/149429.html

相关文章:

  • 深度学习之卷积问题
  • python魔术方法的学习
  • 【Vue】Vue3.0(十九)Vue 3.0 中一种组件间通信方式-自定义事件
  • Jmeter基础篇(22)服务器性能监测工具Nmon的使用
  • 《MYSQL45讲》误删数据怎么办
  • 【go从零单排】Timer、Epoch 时间函数
  • 天软高频时序数据仓库
  • Ubuntu系统Springboot项目Nginx安装(编译安装方式)
  • echarts点击事件
  • vue2+el-select实现分页加载更多功能
  • 插入或更新学生信息的 SQL 语句
  • 【问题解决!】OSError: [WinError 1455] 页面文件太小,无法完成操作。Error loading “c:\Anaconda3\lib
  • 在Windows WSL (Linux的Windows子系统)上运行的Ubuntu如何更改主机名
  • 5W2H分析法
  • git分支拉取时,提示冲突
  • SAP_ABAP_基础编程_DESCRIBE FIELD_获取数据对象的属性
  • 2.ORB-SLAM3中如何从二进制文件中加载多地图、关键帧、地图点等数据结构
  • Leetcode 1727. 具有重排的最大子矩阵
  • RPC之GRPC:什么是GRPC、GRPC的优缺点、GRPC使用场景
  • web:NewsCenter
  • 芯片设计中的DFX
  • skywalking告警UI界面有告警信息,webhook接口没有回调,400错误
  • 【100个Cocos实例】完蛋,你看我在刮刮乐中刮到了什么?
  • 【Java基础】-- Java包(package)命名规范
  • 选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较
  • [C++][原创]VSCode C++怎么让运行的时候弹出cmd窗口,而不是在VSCode调试输出