本节目标

· 理解调试签名与发布签名的核心区别,掌握发布证书与 Profile 文件的申请与配置方法
· 掌握在 AppGallery Connect 中创建应用、配置应用信息的完整流程
· 掌握 DevEco Studio 中正式发布版本的打包与签名配置方法
· 理解隐私合规的核心要求,掌握隐私政策配置、权限最小化声明与第三方 SDK 信息补全的方法
· 掌握应用上架审核的完整流程,了解常见驳回原因与排查方法
· 理解 HarmonyOS 应用更新的三种方式:OTA 全量更新、OTA 增量更新与热修复
· 能够独立完成从签名配置到应用上架的完整发布链路

一、应用签名机制

1.1 调试签名与发布签名的区别

HarmonyOS 的签名文件分为两类,用途有严格限制,两套材料不要混用。

调试证书专门用于开发、真机调试,证书里会绑定开发设备的 UDID(设备唯一标识),系统允许直接安装和断点调试。调试签名可以通过 DevEco Studio 的自动签名功能生成,方便开发者快速调试。

发布证书仅用于上架应用市场,证书无设备绑定信息,可以安装在所有设备上。发布场景必须使用手动签名,需要在 AppGallery Connect 后台申请正式的发布证书。

关键区别:自动签名是“内部通行证”,仅用于调试场景,发布证书是“公开身份证”,用于上架分发。发布签名不能用于真机调试,真机调试时 hvigor 会直接拦截报错。

1.2 发布证书与 Profile 文件

发布构建需要在 AppGallery Connect 中生成发布证书和发布 Profile。Profile 中的 bundleName 和 appIdentifier 必须与工程一致,证书、Profile、私钥库及 keyAlias 必须属于同一套签名材料。

证书文件格式为 .cer,由华为 AppGallery Connect 颁发,分为应用调试证书和应用发布证书。Profile 文件包含数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(Release 类型应用设备列表为空),每个应用包中均必须包含一个 Profile 文件。

1.3 常见签名错误排查

签名配置常见报错原因包括:bundleName 不一致;debug/release 证书和 Profile 混用;Profile 过期;私钥库密码或 alias 错误;调试设备未加入 Profile;切换 product 后仍使用旧签名;申请了受限权限但 Profile 的 APL/ACL 未授权。

排查方法:先看 Build 或安装日志中最前面的完整错误码。可用 SDK 自带签名工具的 verify-profile 检查 Profile,用 verify-app 提取并核对 HAP 内实际证书和 Profile。

二、AppGallery Connect 应用创建与配置

2.1 前置准备

在 AppGallery Connect 中创建应用前,需要先完成开发者账号的实名认证。个人开发者适合个人作品、工具类、学习项目,审核相对宽松;企业开发者适合商用项目、带支付、带企业服务的应用,权限更多、上架权重更高。未完成实名认证,无法创建应用、无法提交审核。

此外,需要完成 APP 备案。鸿蒙版 APP 备案需在接入商备案系统填写材料时选择“鸿蒙”平台,并添加鸿蒙包名等信息。单机应用和境外应用无需备案。

2.2 创建应用

登录 AppGallery Connect,进入“APP 与元服务”,选择 HarmonyOS,点击“新建发布”创建应用。填写应用名称、包名、应用类别、语言地区等信息。包名必须和打包 HAP 包完全一致,大小写敏感。

如果需要使用华为的服务(如华为账号、应用内支付),则必须先在“开发与服务”下创建项目,再在项目下添加应用。

2.3 配置应用信息

创建应用后,需要完善以下信息:应用简介、详细描述、关键词(贴合业务,不堆砌);上传合规图标、截图、展示素材(严格匹配平台尺寸规范);填写开发者信息、客服联系方式。

图标和截图素材要求:高清图标、应用截图(16:9,1280×720 及以上),可选宣传视频。应用名称避免使用泛词(如“免费壁纸”),名称和图标不得与其他 APP 相同或相似,不得使用系统默认图标。

2.4 隐私合规配置

合规信息配置是审核核心,需要完成以下步骤:录入隐私政策 URL 并校验可访问;完成权限说明配置,逐条解释权限使用场景;完成内容年龄分级问卷,生成分级结果。

隐私政策配置路径:应用管理页面 → 版本信息 → 准备提交 → 隐私声明,选择“隐私托管”前往“协议服务”配置隐私政策。

三、正式打包与签名配置

3.1 配置发布签名

在 DevEco Studio 中打开项目工程,进入项目签名配置,导入在 AppGallery Connect 申请的证书(.cer)和 Profile 文件(.p7b),绑定正式发布签名,关闭调试签名模式。在 build-profile.json5 中,signingConfigs 中的证书、Profile、私钥库、alias 和密码要完整,products 里的 signingConfig 要指向刚配置的签名项,避免仍引用旧配置。

3.2 打包正式 HAP 包

执行 Build → Build App(s) 进行打包构建,生成正式签名 HAP 包。打包前需要核对包名、版本号、版本名称,确保与后台创建应用信息一致。禁止携带测试参数、测试域名、多余调试权限。

app.json5 中的版本号仅用于确定版本新旧,targetAPIVersion 标识应用运行需要的 API 目标版本。

3.3 版本号规范

每次版本迭代必须递增版本号,且必须大于线上版本。使用同一套签名证书重新打包,上传新包后填写更新日志,再次提审。

四、隐私合规核心要求

4.1 隐私合规高频驳回问题

根据华为应用市场审核数据,隐私合规相关的驳回问题集中在以下几个方面。

用户同意隐私政策前获取个人信息:所有个人信息获取行为必须在用户同意隐私政策后触发。应用首次启动时应通过弹出隐私政策弹窗或在注册登录界面展示隐私政策,以显著方式提示用户阅读。

权限申请超出必要范围:仅申请业务功能所必要的权限,遵循权限最小化原则。申请了某权限但未提供该权限必须提供且实际有效的使用场景会被驳回。

隐私标签缺失:如果应用存在收集个人信息的行为,需要勾选填写隐私标签,明确使用场景和目的。填写入口:AppGallery Connect > APP与元服务 > 点击对应应用名称 > 版本信息 > 隐私标签信息录入。

隐私政策未以明示同意方式征得同意:征得用户同意的页面不得“默认同意”或“登录即同意”,需要增设勾选框并设为默认未勾选状态,由用户主动操作同意。

4.2 隐私政策与代码行为一致性

审核员会把隐私政策从头到尾读一遍,然后实际操作应用,看收集的数据和隐私政策里写的是否一致。开发者应将代码里所有用到权限、所有调用 SDK、所有收集用户数据的地方列一个清单,然后对照这个清单逐条检查隐私政策有没有覆盖。

重点检查项包括:应用声明了哪些权限,隐私政策里有没有说明每个权限的用途;第三方 SDK 有哪些,每个 SDK 的名称、提供方、收集的数据类型、用途是否写明;有没有收集用户位置、通讯录、相机、麦克风等敏感信息,隐私政策里有没有说明收集目的和使用方式;数据存储和删除有没有说明。

4.3 权限申请时机

敏感权限(如相机、麦克风、位置、存储)必须在运行时动态申请,且申请时机不能过早。应用一启动就弹出一堆权限请求,是审核中常见的驳回原因。

五、提交审核与上架流程

5.1 提交审核步骤

上传 HAP 安装包:进入 AGC 版本管理,上传已签名正式 HAP 包,系统自动进行安全检测、兼容性检测、合规初筛。初筛报错必须全部修复,否则无法提审。

填写版本更新说明:如实填写当前版本功能、优化点、修复问题,简洁规范。

提交审核:全部资料确认无误后,提交华为官方人工+机器审核。审核周期参考:普通个人应用 1-3 个工作日,复杂商用应用 3-7 个工作日。

5.2 审核通过后的发布模式

审核通过后,后台会出现“立即发布”按钮,提供两种上线模式:立即上线(审核通过后全网立刻展示)和定时上线(自定义时间自动上架,适合活动版本)。

5.3 常见驳回原因与整改

驳回后应根据驳回原因逐条整改。常见问题包括:隐私不合规、权限滥用、素材不规范、功能缺失、兼容性问题。整改后重新打包提审即可。

高频驳回原因总结:包名不一致(后台包名和打包包名不统一)、隐私政策与实际行为不一致、敏感权限申请时机太早、第三方 SDK 信息遗漏、应用名称或图标与其他应用相同/相似。

六、应用版本更新策略

6.1 应用市场内更新

新版本应用通过应用市场上架后,应用市场通知终端用户该应用有新版本,终端用户可以根据通知到应用市场进行应用升级。这是最基础的更新方式,用户完全掌控更新时机。

6.2 应用内检测升级

终端用户启动应用时,应用市场检测到该应用有新版本会通知终端用户,可以到应用市场进行应用的下载更新。开发者可以通过调用 updateManager 接口检测新版本并引导用户更新。

需要注意,在 HarmonyOS 中更新应用,无法做到直接下载安装包更新,而是必须跳转到应用市场进行更新。无论使用系统提供的更新样式还是自定义更新弹窗,最后都需要跳转到应用市场。

6.3 三种更新方式对比

OTA 全量更新:下载完整 HAP 包,替换安装后重启应用。更新包大,下载耗时较长,但无版本限制,安全性高。

OTA 增量更新:下载差分包,本地合成新包后校验完整性,替换安装后重启。更新包较小,下载耗时较短,但需要从指定版本升级,差分包有版本限制。

热修复:下载补丁文件,动态加载补丁,无需重启应用。补丁文件极小,下载耗时极短,但修复范围有限,仅支持逻辑修复,需要预先集成框架。

6.4 版本迭代流程

修改代码后,版本号必须递增(大于线上版本);使用同一套签名证书重新打包;AGC 后台上传新包、填写更新日志、再次提审;审核通过后覆盖上线,用户可在线升级。

七、多元化习题

习题 1(判断题)

题目:在 HarmonyOS 中,发布签名可以用于真机调试,调试签名也可以用于上架应用市场。

答案:错误

解读:调试签名和发布签名严格区分用途,不要混用。发布证书仅用于上架应用市场,证书无设备绑定信息,真机调试时 hvigor 会直接拦截报错。调试证书专门给开发、真机调试用,证书里会绑定开发设备 UDID。发布签名仅用于打包分发,调试签名只用于本地开发。

习题 2(单选题)

题目:以下哪个文件包含应用允许申请的证书权限列表以及允许调试的设备列表?

A. .cer 证书文件
B. .p12 私钥库文件
C. .p7b Profile 文件
D. .app 应用包文件

答案:C

解读:Profile 文件(.p7b)包含数字证书信息、描述应用允许申请的证书权限列表,以及允许应用调试的设备列表(如果应用类型为 Release 类型,则设备列表为空)。.cer 是证书文件,.p12 是私钥库文件,.app 是打包后的应用包。

习题 3(多选题)

题目:关于隐私合规,以下说法正确的有(多选):

A. 应用首次启动时应通过弹窗或在注册登录界面展示隐私政策
B. 征得用户同意的页面可以默认勾选同意选项
C. 第三方 SDK 收集的数据也必须在隐私政策中说明
D. 敏感权限应在应用启动时立即申请

答案:A、C

解读:应用首次启动时应通过弹出隐私政策弹窗或在注册登录界面展示隐私政策,以显著方式提示用户阅读,选项 A 正确。征得用户同意的页面不得“默认同意”或“登录即同意”,需要增设勾选框并设为默认未勾选状态,选项 B 错误。只要是应用里收集的数据,不管是自己的代码还是第三方 SDK,都必须在隐私政策里说明,选项 C 正确。敏感权限必须在运行时动态申请,申请时机不能过早,应用一启动就弹出一堆权限请求是常见的驳回原因,选项 D 错误。

习题 4(代码填空题)

题目:请在以下 module.json5 配置文件中补全网络权限声明。

{
  "module": {
    "requestPermissions": [
      {
        "name": "______________"
      }
    ]
  }
}

答案:ohos.permission.INTERNET

解读:应用访问网络前需要在 module.json5 中声明 ohos.permission.INTERNET 权限。该权限属于系统授权权限,通常不需要弹窗向用户动态申请,但仍必须在配置文件中声明。

习题 5(代码改错题)

题目:某开发者在 app.json5 中配置了 “debug”: true,但使用 Attach Debugger 调试时仍然无法识别包名。已知该应用使用的是发布签名。请指出问题并给出修正方案。

答案:问题在于应用使用了发布签名(release)而非调试签名。Attach Debugger 调试依赖两个条件:应用配置为调试模式(“debug”: true),以及配置调试签名。发布签名不支持调试。修正方案是在 DevEco Studio 中配置调试签名,或使用自动签名功能。

解读:发布证书仅用于上架应用市场,证书无设备绑定信息,真机调试时 hvigor 会直接拦截报错。调试证书专门给开发、真机调试用,证书里会绑定开发设备 UDID。

习题 6(简答题)

题目:简述 HarmonyOS 应用发布的完整流程,从签名配置到提交审核。

答案:完整发布流程包括以下步骤:第一步,完成开发者账号实名认证和 APP 备案。第二步,在 AppGallery Connect 中创建应用,填写应用名称、包名、类别等信息。第三步,在 AGC 中申请发布证书和 Profile 文件。第四步,在 DevEco Studio 中配置发布签名,导入证书和 Profile 文件。第五步,打包正式 HAP 包,核对包名和版本号。第六步,在 AGC 后台完善应用信息,包括图标、截图、隐私政策、权限说明等。第七步,上传 HAP 安装包,填写版本更新说明。第八步,提交审核,等待审核结果。第九步,审核通过后选择立即上线或定时上线。

解读:整个发布流程中,签名配置和隐私合规是最容易出问题的环节。开发者需要确保发布证书与 Profile 文件正确配置,隐私政策与实际代码行为一致,权限申请遵循最小化原则。

习题 7(简答题)

题目:简述 HarmonyOS 应用更新的三种方式及其各自的特点与适用场景。

答案:HarmonyOS 应用更新包括三种方式。OTA 全量更新:下载完整 HAP 包,替换安装后重启应用。更新包大,下载耗时较长,但无版本限制,安全性高,适用于大版本更新或首次更新。OTA 增量更新:下载差分包,本地合成新包后校验完整性,替换安装后重启。更新包较小,下载耗时较短,但需要从指定版本升级,差分包有版本限制,适用于小版本迭代。热修复:下载补丁文件,动态加载补丁,无需重启应用。补丁文件极小,下载耗时极短,但修复范围有限,仅支持逻辑修复,需要预先集成框架,适用于紧急 Bug 修复。

解读:三种更新方式各有优劣,实际开发中可以根据更新内容的规模和紧急程度选择合适的更新方式。需要注意的是,在 HarmonyOS 中更新应用必须跳转到应用市场进行更新,无法做到直接下载安装包更新。

八、本节知识点总结

签名机制
调试证书绑定开发设备 UDID,仅用于本地调试,自动签名方便快速调试。发布证书无设备绑定,仅用于上架分发,必须手动在 AGC 申请。两套材料严格区分,不能混用。

AppGallery Connect
在 AGC 中创建应用,包名必须与打包 HAP 包完全一致。配置应用名称、图标、截图、隐私政策、权限说明、内容分级等信息。隐私政策 URL 需公开可访问,权限说明需逐条解释用途。

正式打包
在 DevEco Studio 中配置发布签名,导入证书和 Profile 文件。执行 Build App(s) 打包正式 HAP 包。核对包名和版本号与 AGC 后台一致。版本号必须递增且大于线上版本。

隐私合规
隐私政策必须与实际代码行为一致,覆盖所有权限、第三方 SDK、数据收集行为。用户同意前不得获取个人信息。敏感权限运行时动态申请,申请时机不能过早。权限遵循最小化原则,禁止滥用。

提交审核
上传 HAP 包后系统自动进行安全检测、兼容性检测、合规初筛。初筛报错必须全部修复。审核周期一般为 1-7 个工作日。审核通过后可选择立即上线或定时上线。

版本更新
OTA 全量更新下载完整包,增量更新下载差分包,热修复下载补丁文件。HarmonyOS 中更新必须跳转到应用市场,无法直接下载安装。版本迭代需递增版本号、使用同一套签名重新打包、AGC 上传新包后再次提审。

下节预告
第14课将进入 ArkUI 应用性能优化实战的学习,涵盖启动优化、渲染优化、内存优化、包体积优化等核心主题,帮助开发者构建高性能的 HarmonyOS 应用。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐