manifest.json 文件是应用的配置文件,用于指定应用的名称、图标、权限等。HBuilderX 创建的工程此文件在根目录,CLI 创建的工程此文件在 src 目录。

# 配置项列表

属性 类型 默认值 描述 最低版本
name String 应用名称
appid String 新建 uni-app 项目时,DCloud 云端分配。用途详见 (opens new window) 应用标识
description String 应用描述
locale String auto 设置当前默认语言,具体参考 locale
versionName String 版本名称,例如:1.0.0。详见下方Tips说明
versionCode String 版本号,例如:36
transformPx Boolean true 是否转换项目的px,为true时将px转换为rpx,为false时,px为传统的实际像素
networkTimeout Object 网络超时时间,详见
debug Boolean false 是否开启 debug 模式,开启后调试信息以 info 的形式给出,其信息有页面的注册,页面路由,数据更新,事件触发等
uniStatistics Object 是否开启 uni 统计,全局配置 2.2.3+
app-plus Object App 特有配置
h5 Object H5 特有配置
quickapp Object 快应用特有配置,即将支持
mp-weixin Object 微信小程序特有配置
mp-alipay Object 支付宝小程序特有配置
mp-baidu Object 百度小程序特有配置
mp-toutiao Object 字节跳动小程序特有配置 1.6.0
mp-lark Object 飞书小程序特有配置 3.2.12
mp-qq Object qq 小程序特有配置 2.1.0

Tips

  • uni-app 的 appid 由 DCloud 云端分配,主要用于 DCloud 相关的云服务,请勿自行修改。详见 (opens new window)
  • 注意区分 uni-app 的 appid 与微信小程序、iOS 等其它平台分配的 appid,以及第三方 SDK 的 appid
  • versionName在云打包App和生成wgt应用资源时会使用。如需升级App版本,先修改此处再云打包。导出wgt资源用于离线打包和热更新时也会以此版本为依据。
  • 在本地打包时和热更新时,App版本和wgt应用资源版本将不再保持一致。此时通过plus.runtime.version (opens new window)可获取App版本,通过plus.runtime.getProperty (opens new window)获取wgt资源版本。

# networkTimeout

各类网络请求的超时时间,单位均为毫秒。

属性 类型 必填 默认值 说明
request Number 60000 uni.request 的超时时间,单位毫秒。
connectSocket Number 60000 uni.connectSocket 的超时时间,单位毫秒。
uploadFile Number 60000 uni.uploadFile 的超时时间,单位毫秒。
downloadFile Number 60000 uni.downloadFile 的超时时间,单位毫秒。

HBuilderX 2.5.10起,上述默认超时时间由6秒改为60秒,对齐微信小程序平台。

# uniStatistics

uni 统计配置项

属性 类型 必填 默认值 说明
enable Boolean true 是否开启uni统计

# app-plus

属性 类型 说明 最低版本
splashscreen Object App 启动界面信息,详见
screenOrientation Array 重力感应、横竖屏配置,可取值:"portrait-primary":竖屏正方向;"portrait-secondary":竖屏反方向;"landscape-primary":横屏正方向;"landscape-secondary":横屏反方向。
modules Object 权限模块,详见
distribute Object App 发布信息,详见
nvueCompiler String 切换 nvue 编译模式,可选值,weex :老编译模式,uni-app: 新编译模式,默认为 weex编译模式区别详情 (opens new window) 2.0.3+
nvueStyleCompiler String 切换 nvue 样式编译模式,可选值,weex :老编译模式,uni-app: 新编译模式,默认为 weex编译模式区别详情 (opens new window) 3.1.1+
renderer String 可不加载基于 webview 的运行框架,减少包体积、提升启动速度。可选值 native App-nvue 2.2.0+
compilerVersion Number 编译器版本,可选值:2、3 默认 2 详见 (opens new window) HBuilderX 2.5.0+
nvueLaunchMode Number Nvue 首页启动模式,在 compilerVersion 值为 3 时生效,可选值:normal、fast 默认 normal(HBuilderX 2.4.4-2.4.9 固定为 fast) 详见 (opens new window) 2.5.0+
nvue Object nvue 页面布局初始配置,详见 2.0.3+
uniStatistics Object App 是否开启 uni 统计,配置方法同全局配置 2.2.3+

PS:这里只列出了核心部分,更多内容请参考 完整的 manifest.json

Tips

  • manifest.json 文件的配置,推荐在 HBuilderX 提供的可视化操作界面完成。
  • 部分配置在打包时的操作界面补全,例如:证书等信息。
  • Native.js 权限部分会根据配置的模块权限,在打包后自动填充。
  • 部分 modules 是默认的,不需要进行配置。
  • 微信小程序的 appid 等信息,需要配置在 mp-weixin 节点下。sdkConfigs 下出现的 weixin 节点,配置的是 5+ App 的第三方 SDK 信息。

# App Splashscreen

splash(启动封面)是App必然存在的、不可取消的。

属性 类型 默认值 描述 最低版本
alwaysShowBeforeRender Boolean true 首页白屏时不关闭启动界面 1.6.0
autoclose Boolean true 是否自动关闭程序启动界面。如果需要手动关闭 (opens new window)启动界面,需将 alwaysShowBeforeRender 及 autoclose 均设置为 false。
waiting Boolean true 是否在程序启动界面显示等待圈或雪花
delay Number 0 启动界面在应用的首页面加载完毕后延迟关闭的时间,autoclose 为 true 时生效。

注意

  • 如果不配置自己的splash图,App端会默认把App的icon放到splash中
  • splash只能是标准png,不要用jpg改名为png。也不支持gif等动画
  • 相关改动,云打包生效,真机运行不生效。本地打包需自行在原生工程中配置
  • App启动图中iOS的MAX等大屏设备的splash图若不配,会导致iOS认为此App没有为MAX优化,App将无法全屏,四周会有黑边
  • Android的splash支持.9.png,详见 (opens new window)

# App Modules

模块选择是为了控制App的包体积,不需要的模块可以在打包时剔除。

名称 描述
Bluetooth BLE蓝牙
Contacts 系统通讯录
Fingerprint 指纹识别
iBeacon iBeacon
LivePusher 直播推流
Maps 地图
Messaging 短彩邮件消息
OAuth 登录授权
Payment 支付
Push 消息推送
Share 社交分享
Speech 语音识别
SQLite SQLite数据库
Statistic 统计
VideoPlayer 视频播放

注意

  • 仅App云打包生效。本地打包需自行在原生工程中配置。

# App Distribute

属性 类型 描述
android Object Android 应用配置,详见: 完整 manifest.json
ios Object iOS 应用配置,详见: 完整 manifest.json
sdkConfigs Object SDK配置,仅打包生效 详见
orientation Array 同 screenOrientation 配置,仅打包生效,已废弃,推荐使用 screenOrientation
# App SdkConfigs

三方原生SDK配置。三方SDK的使用需要向这些SDK提供商申请,并配置参数到此处。可在HBuilderX可视化界面(App SDK配置)输入配置,此配置仅云打包后生效,本地打包需自行在原生工程中配置。

属性 类型 描述
oauth Object 授权登录,配置后可调用 uni.login 进行登录操作,目前支持的授权登录平台有:QQ (opens new window)微信 (opens new window)新浪微博 (opens new window)
share Object 分享,配置后可调用 uni.share 进行分享,目前支持QQ、微信、新浪微博等分享, 具体配置 详见
push Object push配置,使用方式 详见 (opens new window),目前支持:uniPush (opens new window)个推 (opens new window)小米推送 (opens new window),注意App仅支持一种 push 方式,配置多个 push 无效,建议使用 uniPush,支持多厂商推送。
payment Object 三方支付配置,配置后可调用 uni.payment 进行支付,目前支持微信支付、支付宝支付、苹果内购, 具体配置 详见
statics Object 统计配置,目前仅支付友盟统计,详见 (opens new window),在uni-app中只用 plus.statistic (opens new window) 进行调用。
speech Object 语音识别配置,支持讯飞语音、百度语音,详见 (opens new window),在uni-app中只用 plus.speech (opens new window) 进行调用。
maps Object 原生地图配置,目前仅支持 高德地图 (opens new window),申请方式可参考:地图插件配置 (opens new window)

# optimization

小程序的分包,除了联网分段下载外,还可以减轻启动时加载的js数量,可以提升启动速度。

从uni-app 2.7.12+ 开始,App-vue平台也兼容了小程序的分包配置,但默认并不开启。

在manifest配置以下节点,可以在App端启动分包。

属性 类型 说明
subPackages Boolean 是否开启分包优化
"app-plus": {
  "optimization": {
    "subPackages": true
  },
  "runmode" : "liberate" // 开启分包优化后,必须配置资源释放模式
}

在manifest中启动分包后,需要在pages.json中配置具体的分包规则,与小程序的配置相同,详见:/collocation/pages?id=subpackages

也就是一旦在pages.json里配置分包,小程序一定生效,而app是否生效,取决于manifest里是否开启。

注意:

  • App开启分包后,每个分包单独编译成一个js文件(都包含在app内,不会联网下载),当App首页是vue时,可减小启动加载文件大小,提升启动速度。
  • 首页是nvue时,分包不会提升启动速度,nvue本身启动速度就快于vue,也快于开启分包后的首页为vue的应用。如果追求极致启动速度,还是应该使用nvue做首页并在manifest开启fast模式。
  • App页面较少时,分包对启动速度的优化不明显。

# nvue

nvue 页面布局初始设置

属性 类型 描述
flex-direction String flex 成员项的排列方向,支持项,row:从左到右; row-reverse:从右到左;column:从上到下;column-reverse:与 column 相反,默认值 column。

# h5

属性 类型 说明
title String 页面标题,默认使用 manifest.json 的 name
template String index.html模板路径,相对于应用根目录,可定制生成的 html 代码。参考:自定义模板
router Object 参考:router
async Object 参考:async
devServer Object 开发环境 server 配置,参考:devServer
publicPath String 引用资源的地址前缀,仅发布时生效。参考:publicPath
sdkConfigs String SDK配置,例如地图... 参考:sdkConfigs
optimization Object 打包优化配置(HBuilderX 2.1.5 以上支持),参考optimization
uniStatistics Object H5 是否开启 uni 统计,配置方法同全局配置

# 自定义模板

需要使用自定义模板的场景,通常有以下几种情况:

  • 调整页面 head 中的 meta 配置
  • 补充 SEO 相关的一些配置(仅首页)
  • 加入百度统计等三方js

使用自定义模板时,1. 工程根目录下新建一个html文件;2. 复制下面的基本模板内容,到这个html文件,在此基础上修改meta和引入js;3. 在 manifest.json->h5->template 节点中关联这个html文件的路径。

<!DOCTYPE html>
<html lang="zh-CN">
	<head>
		<meta charset="utf-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge">
		<title>
			<%= htmlWebpackPlugin.options.title %>
		</title>
    
		<!-- Open Graph data -->
		<!-- <meta property="og:title" content="Title Here" /> -->
		<!-- <meta property="og:url" content="http://www.example.com/" /> -->
		<!-- <meta property="og:image" content="http://example.com/image.jpg" /> -->
		<!-- <meta property="og:description" content="Description Here" /> -->
		<script>
			var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || CSS.supports('top: constant(a)'))
			document.write('<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + (coverSupport ? ', viewport-fit=cover' : '') + '" />')
		</script>
		<link rel="stylesheet" href="<%= BASE_URL %>static/index.<%= VUE_APP_INDEX_CSS_HASH %>.css" />
	</head>
	<body>
		<noscript>
			<strong>Please enable JavaScript to continue.</strong>
		</noscript>
		<div id="app"></div>
		<!-- built files will be auto injected -->
	</body>
</html>

在hello uni-app示例中有一个template.h5.html文件,即是此用途。

关于SEO的补充说明

H5平台是SPA单页应用,普通的SEO信息即加meta字段只能在,自定义的模板html里配置首页。

但SEO的时代在变,现在更有效的方式,使用uni-app同时发布一版百度小程序,这个搜索权重更高。DCloud的ask社区的H5版也是uni-app做的,同时发布了百度小程序,权重更高,每天来自百度的搜索量非常多。是一个可现身说法的好案例。

# router

属性 类型 默认值 说明
mode String hash 路由跳转模式,支持 hash、history
base String / 应用基础路径,例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/",支持设置为相对路径 "./"

注意:

# async

属性 类型 默认值 说明
loading String AsyncLoading 页面 js 加载时使用的组件(需注册为全局组件)
error String AsyncError 页面 js 加载失败时使用的组件(需注册为全局组件)
delay Number 200 展示 loading 加载组件的延时时间(页面 js 若在 delay 时间内加载完成,则不会显示 loading 组件)
timeout Number 60000 页面 js 加载超时时间(超时后展示 error 对应的组件)

# devServer

属性 类型 默认值 说明
https Boolean false 启用 https 协议
disableHostCheck Boolean false 禁用 Host 检查

Tips:uni-appmanifest.json->h5->devServer 实际上对应 webpackdevServer (opens new window),鉴于 manifest 为 json 文件,故 webpack.config.js->devServer 配置项下的简单类型属性均可在manifest.json->h5->devServer节点下配置,funciton 等复杂类型暂不支持。

# publicPath

配置 publicPath 为 cdn 资源地址前缀,这样编译出来的 html 文件,引用的 js,css 路径会自动变成 cdn 上的地址。

注意:如果想对图片生效,image组件的图片地址需要使用相对路径

示例

以 hello-uniapp 发布 H5 时为例

未配置 publicPath 时,发布时 index.html 中的结果:

<script src=/h5/static/js/chunk-vendors.803ce52d.js></script>
<script src=/h5/static/js/index.34e8497d.js>

配置 publicPath 为 https://www.cdn.com/h5/(无效地址仅用作示例) 后,发布时 index.html 中的结果:

<script src=https://www.cdn.com/h5/static/js/chunk-vendors.803ce52d.js></script>
<script src=https://www.cdn.com/h5/static/js/index.34e8497d.js>

注意

  • 打包部署后,在服务器上开启 gzip 可以进一步压缩文件。具体的配置,可以参考网上的分享:https://juejin.im/post/5af003286fb9a07aac24611b

# sdkconfig

三方SDK配置。三方SDK的使用需要向这些SDK提供商申请,并配置参数到此处。可在HBuilderX可视化界面(H5 配置)输入配置。

属性 类型 描述
maps Object 地图或位置相关SDK

# maps

地图服务商 SDK 配置,使用地图以及位置(IP 定位及坐标转换)需要配置此项。

示例

"h5": {
	"sdkConfigs": {
		// 使用地图或位置相关功能必须填写其一
		"maps": {
			"qqmap": {
				// 腾讯地图秘钥 https://lbs.qq.com/dev/console/key/manage
				"key": ""
			},
			"google": {
				// 谷歌地图秘钥(HBuilderX 3.2.10+)https://developers.google.com/maps/documentation/javascript/get-api-key
				"key": ""
			}
		}
	}
}

# optimization

属性 类型 默认值 说明
prefetch Boolean false 资源预取
preload Boolean false 资源预加载
treeShaking Object 摇树优化,根据项目需求,动态打包框架所需的组件及API,保持框架代码最精简化,参考treeShaking
# treeShaking
属性 类型 默认值 说明
enable Boolean false 是否启用摇树优化

示例:

"h5": {
    "optimization": {
        "treeShaking": {
            "enable": true
        }
    }
}

Tips:关于摇树优化(treeShaking)原理及优化结果,参考:https://ask.dcloud.net.cn/article/36279 (opens new window)

# mp-weixin

属性 类型 说明
appid String 微信小程序的AppID,登录 https://mp.weixin.qq.com (opens new window) 申请
setting Object 微信小程序项目设置,参考setting
functionalPages Boolean 微信小程序是否启用插件功能页,默认关闭
requiredBackgroundModes Array 微信小程序需要在后台使用的能力,详见 (opens new window)
plugins Object 使用到的插件,详见 (opens new window)
resizable Boolean 在iPad上小程序是否支持屏幕旋转,默认关闭
navigateToMiniProgramAppIdList Array 需要跳转的小程序列表,详见 (opens new window)
permission Object 微信小程序接口权限相关设置,比如申请位置权限必须填此处详见 (opens new window)
workers String Worker 代码放置的目录。 详见 (opens new window)
optimization Object 对微信小程序的优化配置
cloudfunctionRoot String 配置云开发目录,参考setting
uniStatistics Object 微信小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:auto

# setting

编译到微信小程序平台下的项目设置。

属性 类型 说明
urlCheck Boolean 是否检查安全域名和 TLS 版本
es6 Boolean ES6 转 ES5
postcss Boolean 上传代码时样式是否自动补全
minified Boolean 上传代码时是否自动压缩

# optimization

对微信小程序的优化配置

属性 类型 说明
subPackages Boolean 是否开启分包优化

# cloudfunctionRoot

如果需要使用微信小程序的云开发,需要在 mp-weixin 配置云开发目录

"mp-weixin":{
  // ...
   "cloudfunctionRoot": "cloudfunctions/", // 配置云开发目录
  // ...
}

配置目录之后,需要在项目根目录新建 vue.config.js 配置对应的文件编译规则


{

 plugins: [
     new CopyWebpackPlugin([
       {
         from: path.join(__dirname, '../cloudfunctions'),
         to: path.join(__dirname, 'unpackage', 'dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'cloudfunctions'),
       },
     ]),
   ],
}

# mp-alipay

属性 类型 说明
plugins Object 使用到的插件,详见 (opens new window)
component2 Boolean 是否启用 component2 编译,默认为true,查看详情 (opens new window)
enableAppxNg Boolean 是否启用 enableAppxNg 小程序基础库 2.x 构建,默认为true,查看详情 (opens new window),HBuilderX 3.2.10+
axmlStrictCheck Boolean 是否启用 axml 严格语法检查,默认为false
enableParallelLoader Boolean 是否启用多进程编译,默认为false
enableDistFileMinify Boolean 是否压缩编译产物(仅在真机预览/真机调试时生效),默认为false
uniStatistics Object 支付宝小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:auto

# mp-baidu

属性 类型 说明
appid String 百度小程序的 AppID,登录 https://smartprogram.baidu.com/docs/introduction/enter_application/ (opens new window) 申请
requiredBackgroundModes Array 小程序需要在后台使用的能力,目前支持背景音频播放,"requiredBackgroundModes": ["audio"],详见 (opens new window)
prefetches Array 预请求的所有url的列表,详见 (opens new window)
optimization Object 对百度小程序的优化配置
uniStatistics Object 百度小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:auto

# optimization

对百度小程序的优化配置

属性 类型 说明
subPackages Boolean 是否开启分包优化

# mp-toutiao

属性 类型 说明
appid String 字节跳动小程序的 AppID,登录 https://developer.toutiao.com/ (opens new window) 申请
setting Object 字节跳动小程序项目设置,参考字节跳动小程序项目设置
navigateToMiniProgramAppIdList Array 需要跳转的小程序列表,详见 (opens new window)
uniStatistics Object 字节跳动小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:auto

# 字节跳动小程序项目设置

属性 类型 说明
urlCheck Boolean 是否检查安全域名和 TLS 版本
es6 Boolean ES6 转 ES5
postcss Boolean 上传代码时样式是否自动补全
minified Boolean 上传代码时是否自动压缩

# mp-lark

属性 类型 说明
appid String 飞书小程序的 AppID,登录 https://open.feishu.cn (opens new window) 申请
setting Object 飞书小程序项目设置,参考飞书小程序项目设置
uniStatistics Object 飞书小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:auto

# 飞书小程序项目设置

属性 类型 说明
urlCheck Boolean 是否检查安全域名和 TLS 版本
es6 Boolean ES6 转 ES5
postcss Boolean 上传代码时样式是否自动补全
minified Boolean 上传代码时是否自动压缩

# mp-qq

属性 类型 说明
appid String qq 小程序的 AppID,登录 https://q.qq.com (opens new window) 申请
requiredBackgroundModes Array 小程序需要在后台使用的能力,目前支持背景音频播放,"requiredBackgroundModes": ["audio"],详见 (opens new window)
navigateToMiniProgramAppIdList Array 需要跳转的小程序列表,详见 (opens new window)
permission Object 小程序接口权限相关设置,比如申请位置权限必须填此处详见 (opens new window)
workers String Worker 代码放置的目录。 详见 (opens new window)
groupIdList String Array 需要打开群资料卡的群号列表,详见button的open-type
optimization Object 对QQ小程序的优化配置
uniStatistics Object QQ小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:auto

# optimization

对QQ小程序的优化配置

属性 类型 说明
subPackages Boolean 是否开启分包优化

# mp-kuaishou

属性 类型 说明
appid String 快手小程序的 AppID,登录 https://mp.kuaishou.com (opens new window) 申请
uniStatistics Object 快手小程序是否开启 uni 统计,配置方法同全局配置
scopedSlotsCompiler String 作用域插槽编译模式,HBuilderX 3.1.19+ 开始支持,可选:legacy、auto、augmented,默认:augmented

# 关于分包优化的说明

  • 在对应平台的配置下添加"optimization":{"subPackages":true}开启分包优化
  • 目前只支持mp-weixinmp-qqmp-baidump-toutiao的分包优化
  • 分包优化具体逻辑:
    • 静态文件:分包下支持 static 等静态资源拷贝,即分包目录内放置的静态资源不会被打包到主包中,也不可在主包中使用
    • js文件:当某个 js 仅被一个分包引用时,该 js 会被打包到该分包内,否则仍打到主包(即被主包引用,或被超过 1 个分包引用)
    • 自定义组件:若某个自定义组件仅被一个分包引用时,且未放入到分包内,编译时会输出提示信息

分包内静态文件示例

"subPackages": [{
	"root": "pages/sub",
	"pages": [{
		"path": "index/index"
	}]
}]

以上面的分包为例,放在每个分包root对应目录下的静态文件会被打包到此分包内。

# 快应用

属性 类型 说明
icon String 应用图标,华为推荐 192x192
package String 应用包名
minPlatformVersion Number 最小平台运行支持(华为最低 1070,vivo 1063)
versionName String 版本名称
versionCode Number 版本号

manifest.json配置

"quickapp-webview": {// 快应用通用配置
  "icon": "/static/logo.png",
  "package": "com.example.demo",
  "versionName": "1.0.0",
  "versionCode": 100
},
"quickapp-webview-union": {// 快应用联盟,目前仅支持 vivo、oppo
  "minPlatformVersion": 1063 //最小平台支持
},
"quickapp-webview-huawei": {// 快应用华为
  "minPlatformVersion": 1070 //最小平台支持
}

# 完整 manifest.json

{
    "appid": "__UNI__XXXXXX,创建应用时云端分配的,不要修改。",
    "name": "应用名称,如uni-app",
    "description": "应用描述",
    "versionName": "1.0.0",
    "versionCode": "100",
    "uniStatistics": {
        "enable": false
    },
    "app-plus": {
        "screenOrientation": [
            "portrait-primary",
            "landscape-primary",
            "portrait-secondary",
            "landscape-secondary"
        ],
        "optimization": {
            "subPackages": true
        },
        "modules": {
            "Contacts": {},
            "Fingerprint": {},
            "Maps": {},
            "Messaging": {},
            "OAuth": {},
            "Payment": {},
            "Push": {},
            "Share": {},
            "Speech": {},
            "Statistic": {},
            "VideoPlayer": {},
            "LivePusher": {}
        },
        "distribute": {
            "android": {
                "packagename": "Android应用包名,如io.dcloud.uniapp",
                "keystore": "Android应用打包使用的密钥库文件",
                "password": "Android应用打包使用密钥库中证书的密码",
                "aliasname": "Android应用打包使用密钥库中证书的别名",
                "schemes": [
                    "应用支持的scheme,大小写相关,推荐使用小写"
                ],
                "theme": "程序使用的主题",
                "android:name": "自定义程序入口类名",
                "custompermissions": "Boolean类型,是否自定义android权限,true表示自定义权限,只使用permissions下指定的android权限,不根据用户使用的5+模块自动添加android权限,false表示自动根据用户使用的5+模块自动添加android权限",
                "permissions": [
                    "要添加的额外的android权限,如<uses-permission android:name=\"com.android.launcher.permission.INSTALL_SHORTCUT\" />",
                    "<uses-permission android:name=\"com.android.launcher.permission.UNINSTALL_SHORTCUT\" />"
                ],
                "minSdkVersion": "apk支持的最低版本,默认值为14",
                "targetSdkVersion": "apk的目标版本,默认值为21"
            },
            "ios": {
                "appid": "iOS应用标识,苹果开发网站申请的appid,如io.dcloud.uniapp",
                "mobileprovision": "iOS应用打包配置文件",
                "password": "iOS应用打包个人证书导入密码",
                "p12": "iOS应用打包个人证书,打包配置文件关联的个人证书",
                "devices": "iOS应用支持的设备类型,可取值iphone/ipad/universal",
                "urltypes": [
                    {
                        "urlidentifier": "com.xxx.test",
                        "urlschemes": [
                            "hbuilder"
                        ]
                    }
                ],
                "frameworks": [
                    "使用native.js调用API要引用的库文件名称,如CoreLocation.framework",
                    "QuartzCore.framework"
                ],
                "idfa": "true|false,是否使用广告标识符,默认值为false",
                "plistcmds": [
                    "Set :权限 使用权限的原因",
                    "Set :NSCameraUsageDescription 说明使用用户相机的原因"
                ]
            },
            "sdkConfigs": {
                "maps": {
                    "baidu": {
                        "appkey_ios": "",
                        "appkey_android": ""
                    }
                },
                "oauth": {
                    "weixin": {
                        "appid": "",
                        "appsecret": ""
                    },
                    "qq": {
                        "appid": ""
                    },
                    "sina": {
                        "appkey": "",
                        "appsecret": "",
                        "redirect_uri": ""
                    },
                    "xiaomi": {
                        "appid_ios": "",
                        "appsecret_ios": "",
                        "redirect_uri_ios": "",
                        "appid_android": "",
                        "appsecret_android": "",
                        "redirect_uri_android": ""
                    }
                },
                "payment": {
                    "appleiap": {},
                    "alipay": {
                        "scheme": ""
                    },
                    "weixin": {
                        "appid": ""
                    }
                },
                "push": {
                    "igexin": {
                        "appid": "",
                        "appkey": "",
                        "appsecret": ""
                    }
                },
                "share": {
                    "weixin": {
                        "appid": ""
                    },
                    "sina": {
                        "appkey": "",
                        "appsecret": "",
                        "redirect_uri": ""
                    },
                    "qq": {
                        "appid": ""
                    }
                },
                "statics": {
                    "umeng": {
                        "appkey_ios": "",
                        "channelid_ios": "",
                        "appkey_android": "",
                        "channelid_android": ""
                    }
                }
            },
            "icons": {
                "ios": {
                    "appstore": "必选, 1024x1024, 提交app sotre使用的图标",
                    "iphone": {
                        "app@2x": "可选,120x120,iOS7-11程序图标(iPhone4S/5/6/7/8)",
                        "app@3x": "可选,180x180,iOS7-11程序图标(iPhone6plus/7plus/8plus/X)",
                        "spotlight@2x": "可选,80x80,iOS7-11 Spotlight搜索图标(iPhone5/6/7/8)",
                        "spotlight@3x": "可选,120x120,iOS7-11 Spotlight搜索图标(iPhone6plus/7plus/8plus/X)",
                        "settings@2x": "可选,58x58,iOS5-11 Settings设置图标(iPhone5/6/7/8)",
                        "settings@3x": "可选,87x87,iOS5-11 Settings设置图标(iPhone6plus/7plus/8plus/X)",
                        "notification@2x": "可选,40x40,iOS7-11 通知栏图标(iPhone5/6/7/8)",
                        "notification@3x": "可选,60x60,iOS7-11 通知栏图标(iPhone6plus/7plus/8plus/X)"
                    },
                    "ipad": {
                        "app": "可选,76x76,iOS7-11程序图标",
                        "app@2x": "可选,152x152,iOS7-11程序图标(高分屏)",
                        "proapp@2x": "可选,167x167,iOS9-11程序图标(iPad Pro)",
                        "spotlight": "可选,40x40,iOS7-11 Spotlight搜索图标",
                        "spotlight@2x": "可选,80x80,iOS7-11 Spotlight搜索图标(高分屏)",
                        "settings": "可选,29x29,iOS5-11 设置图标",
                        "settings@2x": "可选,58x58,iOS5-11 设置图标(高分屏)",
                        "notification": "可选,20x20,iOS7-11 通知栏图标",
                        "notification@2x": "可选,40x40,iOS7-11 通知栏图标(高分屏)"
                    }
                },
                "android": {
                    "mdpi": "必选,48x48,普通屏程序图标",
                    "ldpi": "必选,48x48,大屏程序图标",
                    "hdpi": "必选,72x72,高分屏程序图标",
                    "xhdpi": "必选,96x96,720P高分屏程序图标",
                    "xxhdpi": "必选,144x144,1080P高分屏程序图标",
                    "xxxhdpi": "可选,192x192"
                }
            },
            "splashscreen": {
                "ios": {
                    "iphone": {
                        "retina35": "可选,640x960,3.5英寸设备(iPhone4)启动图片",
                        "retina40": "可选,640x1136,4.0英寸设备(iPhone5)启动图片",
                        "retina40l": "可选,1136x640,4.0英寸设备(iPhone5)横屏启动图片",
                        "retina47": "可选,750x1334,4.7英寸设备(iPhone6)启动图片",
                        "retina47l": "可选,1334x750,4.7英寸设备(iPhone6)横屏启动图片",
                        "retina55": "可选,1242x2208,5.5英寸设备(iPhone6Plus)启动图片",
                        "retina55l": "可选,2208x1242,5.5英寸设备(iPhone6Plus)横屏启动图片",
                        "iphonex": "可选,1125x2436,iPhoneX启动图片",
                        "iphonexl": "可选,2436x1125,iPhoneX横屏启动图片"
                    },
                    "ipad": {
                        "portrait": "可选,768x1004,需支持iPad时必选,iPad竖屏启动图片",
                        "portrait-retina": "可选,1536x2008,需支持iPad时必选,iPad高分屏竖屏图片",
                        "landscape": "可选,1024x748,需支持iPad时必选,iPad横屏启动图片",
                        "landscape-retina": "可选,2048x1496,需支持iPad时必选,iPad高分屏横屏启动图片",
                        "portrait7": "可选,768x1024,需支持iPad iOS7时必选,iPad竖屏启动图片",
                        "portrait-retina7": "可选,1536x2048,需支持iPad iOS7时必选,iPad高分屏竖屏图片",
                        "landscape7": "可选,1024x768,需支持iPad iOS7时必选,iPad横屏启动图片",
                        "landscape-retina7": "可选,2048x1536,需支持iPad iOS7时必选,iPad高分屏横屏启动图片"
                    }
                },
                "android": {
                    "mdpi": "必选,240x282,普通屏启动图片",
                    "ldpi": "必选,320x442,大屏启动图片",
                    "hdpi": "必选,480x762,高分屏启动图片",
                    "xhdpi": "必选,720x1242,720P高分屏启动图片",
                    "xxhdpi": "必选,1080x1882,1080P高分屏启动图片"
                }
            }
        },
        "splashscreen": {
            "waiting": true,
            "autoclose": true
        },
        "error": {
            "url": "页面加载错误时打开的页面地址,可以是网络地址,也可以是本地地址"
        },
        "useragent": {
            "value": "自定义ua字符串",
            "concatenate": "是否为追加模式"
        },
        "useragent_ios": {
            "value": "与useragent的value一致,仅在iOS平台生效,当useragent和useragent_ios同时存在时优先级useragent_ios>useragent",
            "concatenate": "与useragent的concatenate一致,仅iOS平台生效"
        },
        "useragent_android": {
            "value": "与useragent的value一致,仅在Android平台生效,当useragent和useragent_android同时存在时优先级useragent_android>useragent",
            "concatenate": "与useragent的concatenate一致,仅Android平台生效"
        },
        "ssl": "accept|refuse|warning,访问https网络时对非受信证书的处理逻辑",
        "runmode": "normal",
        "appWhitelist": [
            "Android平台下载apk地址白名单列表",
            "iOS平台跳转appstore地址白名单列表"
        ],
        "schemeWhitelist": [
            "URL Scheme白名单列表,如:mqq"
        ],
        "channel": "渠道标记,可在DCloud开发者中心查看各渠道应用的统计数据",
        "adid": "广告联盟会员id,在DCloud开发者中心申请后填写",
        "safearea": {
            "background": "#CCCCCC",
            "bottom": {
                "offset": "none|auto"
            },
            "left": {
                "offset": "none|auto"
            },
            "right": {
                "offset": "none|auto"
            }
        },
        "softinput": {
            "navBar": "auto",
            "mode": "adjustResize|adjustPan"
        },
        "popGesture": "none"
    },
    "quickapp": {},
    "mp-weixin": {
        "appid": "wx开头的微信小程序appid",
        "uniStatistics": {
            "enable": false
        }
    },
    "mp-baidu": {
        "appid": "百度小程序appid"
    },
    "mp-toutiao": {
        "appid": "字节跳动小程序appid"
    },
    "mp-lark": {
        "appid": "飞书小程序appid"
    },
    "h5": {
        "title": "演示",
        "template": "index.html",
        "router": {
            "mode": "history",
            "base": "/hello/"
        },
        "async": {
            "loading": "AsyncLoading",
            "error": "AsyncError",
            "delay": 200,
            "timeout": 3000
        }
    }
}

更多配置相关的说明,请参考 manifest.json文档说明 (opens new window) 中的描述。可能节点的位置与普通的 App 有差异,请按照配置的名称进行对应。

# FAQ

Q:iOS 应用调用相机等权限时,弹出的提示语如何修改? A:在 manifest.json 可视化界面-App模块权限配置-iOS隐私信息访问的许可描述

上次更新: 2022/2/21 下午6:27:17
特别声明:本手册内容来源uniapp官方
内容出处:uniapp.dcloud.net.cn