跳到主要内容

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

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

app.json5配置文件中versionCode字段一致,表示安装或更新包同版本,否则为不同版本。

使用打包工具进行打包时,会进行合法性校验。详情请参考打包工具

签名证书一致性校验

字段名称说明安装一致性校验规则更新一致性校验规则
appId应用的appId,表示应用的唯一标识,详情信息可参考什么是appIdappId和appIdentifier任一相同即可。
appIdentifier应用的唯一标识。详情信息可参考什么是appIdentifierappId和appIdentifier任一相同即可。
appDistributionType应用Profile文件中的类型,标识应用的发布上架类型,如类型为企业MDM应用发布更新不同版本时无校验,同版本有校验。
appProvisionType应用签名证书类型。Profile签名文件的类型,分为debug和release。debug为本地调试使用,release为上架应用市场使用。更新不同版本时无校验,同版本有校验。
apl表示应用程序的APL等级,系统定义的apl包括:normal、system_basic和system_core。更新不同版本时无校验,同版本有校验。

配置文件一致性校验

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