应用安装与更新一致性校验
============

随着应用发展越来越复杂，应用也被拆成多个模块进行开发维护，不同的团队负责单个或者多个模块，应用在安装更新过程中会针对不同的字段进行一致性校验和验证，保证应用的安全合法性。本文介绍多模块安装或更新时，签名证书、配置文件的一致性校验规则。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/63/v3/OmMl44KaSOmLBnL26LZZTA/note_3.0-zh-cn.png?HW-CC-KV=V1&HW-CC-Date=20260612T073229Z&HW-CC-Expire=86400&HW-CC-Sign=751AD692ECA42C57DA4AC1BE435844B43965421B723B2CC0DCB02F2CC6627C1E)

[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中versionCode字段一致，表示安装或更新包同版本，否则为不同版本。

使用打包工具进行打包时，会进行合法性校验。详情请参考[打包工具](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/packing-tool)。

#### 签名证书一致性校验

| 字段名称 | 说明 | 安装一致性校验规则 | 更新一致性校验规则 |
| :-- | :-- | :-- | :-- |
| appId | 应用的appId，表示应用的唯一标识，详情信息可参考[什么是appId](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/common-problem-of-application#什么是appid)。 | 是 | appId和appIdentifier任一相同即可。 |
| appIdentifier | 应用的唯一标识。详情信息可参考[什么是appIdentifier](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/common-problem-of-application#什么是appidentifier)。 | 是 | appId和appIdentifier任一相同即可。 |
| appDistributionType | 应用[Profile文件](https://developer.huawei.com/consumer/cn/doc/app/agc-help-release-profile-0000002248341090)中的类型，标识应用的发布上架类型，如类型为[企业MDM应用发布](https://developer.huawei.com/consumer/cn/doc/app/agc-help-enterprise-mdm-profile-0000002248341094)。 | 是 | 更新不同版本时无校验，同版本有校验。 |
| appProvisionType | 应用签名证书类型。[Profile签名文件](https://developer.huawei.com/consumer/cn/doc/app/agc-help-profile-overview-0000002283260125)的类型，分为debug和release。debug为本地调试使用，release为上架应用市场使用。 | 是 | 更新不同版本时无校验，同版本有校验。 |
| apl | 表示应用程序的[APL等级](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-permission-mgmt-overview#权限机制中的基本概念)，系统定义的apl包括：normal、system\_basic和system\_core。 | 是 | 更新不同版本时无校验，同版本有校验。 |

#### 配置文件一致性校验

| 字段名称 | 说明 | 安装一致性校验规则 | 更新一致性校验规则 |
| :-- | :-- | :-- | :-- |
| bundleName | 标识应用名称。该字段来源于[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中的bundleName字段。 | 是 | 是 |
| versionCode | 标识应用版本号。该字段来源于[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中的versionCode字段。 | 是 | 是 |
| apiReleaseType | 标识应用运行需要的API目标版本的类型。设备中未安装该应用，该应用包含多个模块包，模块一个一个安装时，不检验一致性。该字段来源于[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中的apiReleaseType字段。 | 否 | 是 |
| targetBundleName | 标识当前包所指定的目标应用，配置该字段的应用为具有overlay特征的应用。该字段来源[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中targetBundleName字段。 | 是 | 是 |
| targetPriority | 标识当前应用的优先级。该字段来源于[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中的targetPriority字段。 | 是 | 是 |
| bundleType | 标识应用的类型。该字段来源于[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中的bundleType字段。 | 是 | 是 |
| installationFree | 标识是否支持免安装。该字段来源于[module.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file)中的installationFree字段。 | 是 | 是 |
| debug | 标识应用是否可调试。该字段来源于[app.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-configuration-file)中的debug字段。 | 是 | 否 |
| moduleType | 标识模块的类型。该字段来源于[module.json5配置文件](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/module-configuration-file)中的type字段。 | 是，同版本entry类型的moduleName不能修改 | 是 |