

English
manifest.json
是 uni-app x 项目的配置文件,用于设置应用的名称、版本、图标等信息。在 HBuilderX 中创建项目时此文件保存在根目录。
uni-app x 目前不支持配置splash图,因uni-app x打包后启动速度非常快,可以自己做一个简单的uvue页面来当做splash。
uni-app x 不再提供内置模块选择,而是提供了摇树机制自动选择内置模块,具体见下。
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
appid | string | - | DCloud AppID 使用说明 |
name | string | - | 应用名称 |
description | string | - | 应用描述 |
versionName | string | - | 应用版本名称 |
versionCode | integer | - | 应用版本号,必须是整数,取值范围1~2147483647;升级时必须高于上一次设置的值。 |
locale | '' | - | 默认语言 |
fallbackLocale | '' | - | 默认回退语言 |
uni-app-x | uni-app-x 配置项列表 | - | 存在uni-app-x节点则表示为uni-app x项目 |
app | app 配置项列表 | - | App端(原生App)配置 |
注意
appid
由 DCloud 云端分配,主要用于 DCloud 相关的云服务,请勿自行修改。详见uni-app-x
节点必须存在,它是一个项目是否是 uni-app x项目的核心标识。
存在uni-app-x节点则表示为uni-app x项目
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
flex-direction | 'row' | 'row-reverse' | 'column' | 'column-reverse' | column | uvue页面默认flex排列方向 |
App端(原生App)配置
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
distribute | distribute 配置项列表 | - | App端发布配置 |
uni-app x 的权限配置,移入了AndroidManifest.xml中。
使用uni内置模块时,云端打包会自动添加模块需要的Android权限,不需要在AndroidManifest.xml中配置。
HBuilderX3.97+版本标准基座已经包含了所有Android权限,在 uvue 页面中直接通过 uts 调用需要权限的 Android 系统 API 时,使用标准基座真机运行可直接通过UTSAndroid.requestSystemPermission申请;使用自定义基座则需要在项目的AndroidManifest.xml中配置要使用的权限,重新提交云端打包。
App端发布配置
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
syncDebug | boolean | - | 是否为自定义调试基座 |
icons | icons 配置项列表 | - | iOS、Android应用图标配置。云打包后生效,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改。 |
android | android 配置项列表 | - | App-Android端发布配置 |
ios | ios 配置项列表 | - | IOS配置 |
iOS、Android应用图标配置。云打包后生效,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改。
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
android | android 配置项列表 | - | Android图标配置 |
ios | ios 配置项列表 | - | iOS图标配置 |
注意
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
hdpi | string | - | 高分屏设备程序图标,分辨率要求72x72 |
xhdpi | string | - | 720P高分屏设备程序图标,分辨率要求96x96 |
xxhdpi | string | - | 1080P高分屏设备程序图标,分辨率要求144x144 |
xxxhdpi | string | - | 2K屏设备程序图标,分辨率要求192x192 |
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
appstore | string | - | 提交app store使用的图标 1024x1024 |
iphone | iphone 配置项列表 | - | iPhone图标配置 |
ipad | ipad 配置项列表 | - | iPad图标配置 |
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
app@2x | string | - | iOS9.0+ 程序图标(2x) |
app@3x | string | - | iOS9.0+ 程序图标(3x) |
spotlight@2x | string | - | iOS9.0+ Spotlight图标(2x) |
spotlight@3x | string | - | iOS9.0+ Spotlight图标(3x) |
settings@2x | string | - | iOS9.0+ Settings设置图标(2x) |
settings@3x | string | - | iOS9.0+ Settings设置图标(3x) |
notification@2x | string | - | iOS9.0+ 通知栏图标(2x) |
notification@3x | string | - | iOS9.0+ 通知栏图标(3x) |
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
app | string | - | iOS9.0+ 程序图标 |
app@2x | string | - | iOS9.0+ 程序图标(2x) |
proapp@2x | string | - | iOS9.0+ 程序图标(3x) |
spotlight | string | - | iOS9.0+ Spotlight图标 |
spotlight@2x | string | - | iOS9.0+ Spotlight图标(2x) |
settings | string | - | iOS9.0+ Settings设置图标 |
settings@2x | string | - | iOS9.0+ Settings设置图标(2x) |
notification | string | - | iOS9.0+ 通知栏图标 |
notification@2x | string | - | iOS9.0+ 通知栏图标(2x) |
App-Android端发布配置
属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
minSdkVersion | integer | 21 | 应用兼容的最低Android版本(API等级);参考文档 |
targetSdkVersion | integer | 30 | 应用适配的目标Android版本(API等级),部分应用市场要求设置较高的targetSdkVersion才能提交审核;参考文档 |
abiFilters | Array<'armeabi-v7a' | 'arm64-v8a' | 'x86' | 'x86_64'> | ["arm64-v8a"] | 参考文档 |
注意
abiFilters
用于指定应用需要支持的CPU类型,字符串数组类型,字符串可取值"armeabi-v7a"、"arm64-v8a"、"x86"、"x86_64",默认值为["arm64-v8a"]。minSdkVersion
用于指定应用运行所需最低 API 级别的整数。如果系统的 API 级别低于该属性中指定的值,Android 系统将阻止用户安装应用。targetSdkVersion
一个用于指定应用的目标 API 级别的整数。如果未设置,其默认值与为 minSdkVersion 指定的值相等。该值用于通知系统,您已针对目标版本进行了测试,并且系统不应通过启用任何兼容性行为,以保持您的应用与目标版本的向前兼容性。minSdkVersion
和 targetSdkVersion
设置的值是 API 级别(API Level),完整API级别信息请参考Android API级别说明属性 | 类型 | 默认值 | 描述 |
---|---|---|---|
appid | string | - | iOS Bundle ID |
{
"name" : "uni-app x",
"appid" : "__UNI__XXXXXXX",
"description" : "描述信息",
"versionName" : "1.0.0",
"versionCode" : "100",
"uni-app-x":{
"flex-direction": "column"
},
"vueVersion" : "3",
"app": {
"distribute": {
"syncDebug": true,
"android": {
"packagename": "Android包名",
"abiFilters": [
"armeabi-v7a","arm64-v8a"
],
"minSdkVersion": "21",
"targetSdkVersion": "32"
},
"ios": {
"appid": "iOS Bundle ID"
}
}
}
}
uni-app x的Android基础库体积是7M,打包后的apk体积是基础库的体积加上开发者的代码及代码引用的模块的体积。有些模块涉及so库,覆盖的cpu指令越多,包体积越大。
在uni-app js引擎版中,内置模块如video,是开发者在manifest.json中手动勾选配置的。
但在uni-app x中,不需要手动配置。
HBuilderX3.93版本起,编译器支持扫描代码,摇树treeShaking,自动引入或剔除不需要的内置模块。
如应用中没有使用video组件相关功能,将不再包含video内置模块,减少安装包体积。
摇树注意事项:
当你打包自定义基座时,如果你的工程代码没有使用video、定位、相册、摄像头等涉及三方sdk或敏感权限的api,打出的自定义基座包就不会包含这些组件和api的功能,那么在这些自定义基座上运行时,调用相关的组件和api就会报错。
此时您需要在工程中写相关的代码,如引用video组件或调用定位api,保存代码后重新打包自定义基座,才会包含相关模块。
您在工程中下载的ext api、三方uts插件也同理,没有引用就不会打进去。
uni-network 网络请求(文件上传/下载)模块,包括API:uni.downloadFile、uni.request、uni.uploadFile 依赖的模块:无
uni-getLocation-system 系统定位模块,包括API:uni.getLocation 依赖的模块:无
uni-video video视频组件模块,包括内置组件:video;包括API:uni.createVideoContext
uni-media 多媒体相关API模块,包括API:uni.chooseImage、uni.previewImage、uni.saveImageToPhotosAlbum 依赖的模块:无
uni-cloud-client 调用uniCloud云函数/云对象模块,包括API:uniCloud.importObject、uniCloud.callFunction 依赖的模块:uni-media、uni-network
uni-push
uni-push统一推送模块(HBuilderX3.97+
),包括API:uni.createPushMessage、uni.getPushClientId、uni.offPushMessage、uni.onPushMessage
依赖的模块:无
uni-facialRecognitionVerify uni实人认证模块,包括API:uni.getFacialRecognitionMetaInfo、uni.startFacialRecognitionVerify 依赖的模块:无
再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。