# manifest.json

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项目的核心标识。
    • 缺少该节点时,HBuilderX 会把项目识别为 uni-app js引擎版项目(方形项目图标)。
    • 含有该节点时,HBuilderX中的项目图标是圆形的。

# UNI-APP-X配置

存在uni-app-x节点则表示为uni-app x项目

属性 类型 默认值 描述
flex-direction 'row' | 'row-reverse' | 'column' | 'column-reverse' column uvue页面默认flex排列方向

# APP配置

App端(原生App)配置

属性 类型 默认值 描述
distribute distribute 配置项列表 - App端发布配置

# Android权限配置

uni-app x 的权限配置,移入了AndroidManifest.xml中。

使用uni内置模块时,云端打包会自动添加模块需要的Android权限,不需要在AndroidManifest.xml中配置。

HBuilderX3.97+版本标准基座已经包含了所有Android权限,在 uvue 页面中直接通过 uts 调用需要权限的 Android 系统 API 时,使用标准基座真机运行可直接通过UTSAndroid.requestSystemPermission申请;使用自定义基座则需要在项目的AndroidManifest.xml中配置要使用的权限,重新提交云端打包。

# DISTRIBUTE配置

App端发布配置

属性 类型 默认值 描述
syncDebug boolean - 是否为自定义调试基座
icons icons 配置项列表 - iOS、Android应用图标配置。云打包后生效,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改。
android android 配置项列表 - App-Android端发布配置
ios ios 配置项列表 - IOS配置
# App端图标配置

iOS、Android应用图标配置。云打包后生效,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改。

属性 类型 默认值 描述
android android 配置项列表 - Android图标配置
ios ios 配置项列表 - iOS图标配置

注意

  • App端图片相关配置,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改
  • manifest中只能配置一个icon。如需在应用发布后动态修改icon,可在插件市场搜索动态图标插件
# Android图标配置
属性 类型 默认值 描述
hdpi string - 高分屏设备程序图标,分辨率要求72x72
xhdpi string - 720P高分屏设备程序图标,分辨率要求96x96
xxhdpi string - 1080P高分屏设备程序图标,分辨率要求144x144
xxxhdpi string - 2K屏设备程序图标,分辨率要求192x192
# iOS图标配置
属性 类型 默认值 描述
appstore string - 提交app store使用的图标 1024x1024
iphone iphone 配置项列表 - iPhone图标配置
ipad ipad 配置项列表 - iPad图标配置
# iPhone图标配置
属性 类型 默认值 描述
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)
# iPad图标配置
属性 类型 默认值 描述
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)
# ANDROID配置

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 指定的值相等。该值用于通知系统,您已针对目标版本进行了测试,并且系统不应通过启用任何兼容性行为,以保持您的应用与目标版本的向前兼容性。
  • minSdkVersiontargetSdkVersion 设置的值是 API 级别(API Level),完整API级别信息请参考Android API级别说明
# IOS配置
属性 类型 默认值 描述
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插件也同理,没有引用就不会打进去。

# App端支持摇树的内置模块列表

再次强调,以上模块不属于ext组件或api,是内置模块。但如果你的代码中没有使用这些组件和api,打正式包或自定义基座时会被摇掉。

# # 参见

相关 Bug