> 文档中心 > HarmonyOS应用开发:config.json配置文件说明(JS/eTS)

HarmonyOS应用开发:config.json配置文件说明(JS/eTS)

在应用开发的工程中,需要在config.json配置文件中对应用的包结构进行声明。

配置文件的内部结构

“config.json”由app,deviceConfig和module三个部分组成,缺一不可。配置文件的内部结构说明参见表1。

表1 配置文件的内部结构说明

属性名称

含义

数据类型

是否可缺省

app

表示应用的全局配置信息。同一个应用的不同HAP包的app配置必须保持一致。参考app对象内部结构。

对象

deviceConfig

表示应用在具体设备上的而配置信息。参考deviceconfig对象内部结构。

对象

module

表示HAP包的配置信息。该标签下的配置只对当前HAP包生效。参考module对象的内部结构。

对象

config.json示例:

{  "app": {    "bundleName": "com.example.myapplication",    "vendor": "example",    "version": {      "code": 1,      "name": "1.0"    },    "apiVersion": {      "compatible": 4,      "target": 5,      "releaseType": "Beta1"    }  },  "deviceConfig": {},  "module": {    "package": "com.example.myapplication.entrymodule",    "name": ".MyApplication",    "deviceType": [      "default"    ],    "distro": {      "moduleName": "entry",      "moduleType": "entry"    },    "abilities": [      { "skills": [   {     "entities": ["entity.system.home"     ],     "actions": ["action.system.home"     ]   } ], "name": "com.example.myapplication.entrymodule.MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:app_name", "type": "page", "launchType": "standard"      }    ],    "js": [      { "pages": [   "pages/index/index" ], "name": "default", "window": {   "designWidth": 720,   "autoDesignWidth": false }      }    ]  }}

app对象内部结构

app对象包含应用全局配置信息,内部结构说明参见表2。

表2 app对象的内部结构说明

属性名称

含义

数据类型

是否可缺省

bundleName

表示应用的包名,用于标识应用的唯一性。包名是由字母、数字、下划线(_)和点号(.)组成的字符串,必须以字母开头。支持的字符串长度为7~127字节。包名通常采用反向域名形式表示(例如,"com.example.myapplication")。建议第一级为域名后缀"com",第二级为厂商/个人名,也可以采用多级。

字符串

vendor

表示对应用开发厂商的描述。字符串长度不超过255字节。

字符串

可缺省,缺省值为空

version

表示应用的版本信息。参考表3。

对象

apiVersion

标识应用程序所依赖的API版本。参考表4。

对象

可缺省,缺省值为空

表3 version内部结构说明

属性名称

含义

数据类型

是否可缺省

name

表示应用的版本号,用于向应用的终端用户呈现。取值可以自定义,长度不超过127字节。自定义规则如下:

API5及更早的版本:推荐使用三段数字版本号(也兼容两段式版本号),如A.B.C(也兼容A.B),其中A、B、C取值为0-999范围内的整数。除此之外不支持其他格式。

A段,一般表示主版本号(Major)。

B段,一般表示次版本号(Minor)。

C段,一般表示修订版本号(Patch)。

API6版本起:推荐采用四段式数字版本号,如A.B.C.D,其中A、B、C取值为0-99范围内的整数,D的取值为0-999范围内的整数。

A段,一般表示主版本号(Major)。

B段,一般表示次版本号(Minor)。

C段,一般表示特性版本号(Feature)。

D段,一般表示修订版本号(Patch)。

数值

不可缺省

code

表示应用的版本号,仅用于应用管理该应用,不对应用的终端用户呈现。取值规则如下:

API5及更早版本:二进制32位以内的非负整数,需要从version.name的值转换得到。转换规则为:

code值=A * 1,000,000 + B * 1,000 + C 例如,version.name字段取值为2.2.1,则code值为2002001。

API6版本起:code的取值不与version.name字段的取值关联,开发者可自定义code取值,取值范围为2^31以内的非负整数,但是每次应用版本的更新,均需要更新code字段的值,新版本code取值必须大于旧版本code的值。

数值

不可缺省

minCompatibleVersionCode

表示应用可兼容的最低版本号,用于跨设备场景下,判断其他设备上该应用的版本是否兼容。

格式与version.code字段的格式要求相同。

数值

可缺省,缺省值为code标签值

表4 apiVersion内部结构

属性名称

含义

数据类型

是否可缺省

compatible

运行应用所需要的最低API版本,取值范围为0~2147483647。

整数

可缺省

target

用于标识应用运行所需的目标API版本,取值范围为0~2147483647。

整数

可缺省

releaseType

用于标识应用运行所需的目标API版本的类型。

字符串

可缺省

app实例:

"app": {    "bundleName": "com.example.myapplication",    "vendor": "example",    "version": {      "code": 1,      "name": "1.0"    },    "apiVersion": {      "compatible": 4,      "target": 5,      "releaseType": "Beta1"    }  }