manifest.md 10.0 KB
Newer Older
D
DCloud_LXH 已提交
1 2 3 4
# manifest.json

`manifest.json` 是 uni-app x 项目的配置文件,用于设置应用的名称、版本、图标等信息。在 HBuilderX 中创建项目时此文件保存在根目录。

DCloud-yyl's avatar
DCloud-yyl 已提交
5
uni-app x 默认没有splash启动界面,因uni-app x打包后启动速度非常快,可以自己做一个简单的uvue页面来当做splash。HBuilderX3.99+版本新增支持配置splash启动界面,详情参考[启动界面配置](manifest-splashscreen.md)
D
DCloud_LXH 已提交
6

D
DCloud_LXH 已提交
7
uni-app x 不再提供内置模块选择,而是提供了摇树机制自动选择内置模块,详情参考[模块配置](manifest-modules.md#treeshaking)
D
DCloud_LXH 已提交
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

## 配置项列表

<!-- MANIFESTJSON.manifest.table -->

**注意**
- `appid` 由 DCloud 云端分配,主要用于 DCloud 相关的云服务,请勿自行修改。[详见](https://ask.dcloud.net.cn/article/35907)
- `uni-app-x` 节点必须存在,它是一个项目是否是 uni-app x项目的核心标识。
	* 缺少该节点时,HBuilderX 会把项目识别为 uni-app js引擎版项目(方形项目图标)。
	* 含有该节点时,HBuilderX中的项目图标是圆形的。

### UNI-APP-X配置 @manifest-uni-app-x

<!-- MANIFESTJSON.manifest_uni-app-x.description -->

<!-- MANIFESTJSON.manifest_uni-app-x.table -->


### APP配置 @manifest-app

<!-- MANIFESTJSON.manifest_app.description -->

<!-- MANIFESTJSON.manifest_app.table -->

DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
32 33 34 35
老uni-app可配置原生的隐私弹框。这是因为开发者的js执行较慢,在原生代码获取隐私前来不及弹框,不能满足先弹隐私政策后采集数据的合规要求。

但uni-app x是原生的,开发者的代码执行非常快,无需再提供隐私政策弹框配置。自行弹框即可。

D
DCloud_LXH 已提交
36 37
#### Android权限配置@permissions

W
wanganxp 已提交
38
uni-app x 的权限配置,移入了[AndroidManifest.xml](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions)中。
D
DCloud_LXH 已提交
39

D
DCloud_LXH 已提交
40
使用[uni内置模块](./manifest-modules.md#utsmodules)时,云端打包会自动添加模块需要的Android权限,不需要在[AndroidManifest.xml](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions)中配置。
D
DCloud_LXH 已提交
41

D
DCloud_LXH 已提交
42
- HBuilderX3.97+版本标准基座已经包含了所有Android权限,在 uvue 页面中直接通过 uts 调用需要权限的 Android 系统 API 时,使用标准基座真机运行可直接通过[UTSAndroid.requestSystemPermission](../uts/utsandroid.md#requestsystempermission)申请;
D
DCloud_LXH 已提交
43
- 使用自定义基座则需要在项目的[AndroidManifest.xml](https://uniapp.dcloud.io/tutorial/app-nativeresource-android.html#permissions)中配置要使用的权限,重新提交云端打包。
D
DCloud_LXH 已提交
44

DCloud-yyl's avatar
DCloud-yyl 已提交
45 46 47 48 49 50
#### iOS隐私信息访问的许可描述@usageDescription

uni-app x 的隐私信息访问的许可描述配置,移入了[Info.plist](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#infoPlist)中。

使用[uni内置模块](./manifest-modules.md#utsmodules)时,云端打包回自动添加模块需要的隐私信息访问的许可描述,但许可描述信息是通用描述,不一定适合应用的实际使用场景描述,需根据应用的实际情况在[Info.plist](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#infoPlist)中配置准确的许可描述。

51 52 53 54 55
#### 渠道信息  

> HBuilder4.31版本新增支持  

uni-app x 的渠道信息配置,需在“App打包”界面配置,详情参考[渠道包配置](../tutorial/app-package.md#channel)
D
DCloud_LXH 已提交
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

#### DISTRIBUTE配置 @app-distribute

<!-- MANIFESTJSON.app_distribute.description -->

<!-- MANIFESTJSON.app_distribute.table -->


##### App端图标配置 @distribute-icons

<!-- MANIFESTJSON.distribute_icons.description -->

<!-- MANIFESTJSON.distribute_icons.table -->

**注意**
- App端图片相关配置,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改
- manifest中只能配置一个icon。如需在应用发布后动态修改icon,可在插件市场搜索[动态图标插件](https://ext.dcloud.net.cn/search?q=%E5%8A%A8%E6%80%81%E5%9B%BE%E6%A0%87&orderBy=Relevance&cat1=8&cat2=81)

###### Android图标配置 @icons-android

<!-- MANIFESTJSON.icons_android.description -->

<!-- MANIFESTJSON.icons_android.table -->

DCloud-yyl's avatar
DCloud-yyl 已提交
80 81
> 必须使用 `png` 格式图标

82
###### iOS图标配置 @icons-ios
D
DCloud_LXH 已提交
83

84 85 86 87
<!-- MANIFESTJSON.icons_ios.description -->

<!-- MANIFESTJSON.icons_ios.table -->

DCloud-yyl's avatar
DCloud-yyl 已提交
88 89
> 必须使用 `png` 格式图标,图片中不能存在透明区域  

90 91 92
<!-- MANIFESTJSON.icons_ios.compatibility -->

##### App端启动界面配置 @distribute-splashScreens
D
DCloud_LXH 已提交
93

94
<!-- MANIFESTJSON.distribute_splashScreens.description -->
D
DCloud_LXH 已提交
95 96


97
###### Android平台启动界面配置 @splashScreens-android
D
DCloud_LXH 已提交
98

99
<!-- MANIFESTJSON.splashScreens_android.description -->
D
DCloud_LXH 已提交
100

101
<!-- MANIFESTJSON.splashScreens_android.table -->
D
DCloud_LXH 已提交
102 103


104
###### Android12启动界面配置 @splashScreen-_android12
D
DCloud_LXH 已提交
105

106
<!-- MANIFESTJSON.splashScreens_android12.description -->
107

108
<!-- MANIFESTJSON.splashScreens_android12.table -->
109 110


111
###### Android12启动界面Logo图标配置 @android12-icon
112

113
<!-- MANIFESTJSON.android12_icon.description -->
114

115
<!-- MANIFESTJSON.android12_icon.table -->
116

117
###### Android12启动界面底部品牌图标 @android12-brand
118

119
<!-- MANIFESTJSON.android12_brand.description -->
120

121
<!-- MANIFESTJSON.android12_brand.table -->
122

123
<!-- MANIFESTJSON.android12_brand.compatibility -->
124

D
DCloud_LXH 已提交
125 126 127 128 129 130 131 132 133 134 135 136
##### ANDROID配置 @distribute-android

<!-- MANIFESTJSON.distribute_android.description -->

<!-- MANIFESTJSON.distribute_android.table -->

**注意**
- `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级别说明](https://developer.android.com/guide/topics/manifest/uses-sdk-element?hl=zh-cn#ApiLevels)

137
###### aaptOptions @aaptoptions  
138 139 140

> HBuilder4.31版本新增支持  

141 142 143 144 145 146 147 148 149 150 151 152
Android平台云端打包时build.gradle的aaptOptions配置项,支持的属性参考:[Android官方文档](https://developer.android.google.cn/reference/tools/gradle-api/7.1/com/android/build/api/dsl/AaptOptions?hl=en),如下示例源码:  
```json  
"aaptOptions": [
    "noCompress 'png', 'jpg', 'jpeg'"  //配置禁止对 png、jpg、jpeg格式的文件进行压缩
]
```

云端打包默认包含以下配置:  
- additionalParameters '--auto-add-overlay'  
- ignoreAssetsPattern '!.svn:!.git:.*:!CVS:!thumbs.db:!picasa.ini:!*.scc:*~'  

###### buildFeatures @buildfeatures  
153 154 155

> HBuilder4.31版本新增支持  

156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176
Android平台云端打包时build.gradle的buildFeatures配置项,支持的属性参考:[Android官方文档](https://developer.android.google.cn/reference/tools/gradle-api/7.1/com/android/build/api/dsl/BuildFeatures?hl=en),如下示例源码:  
```json  
"buildFeatures": [
	"viewBinding true",  //开启dataBinding
	"dataBinding true"   //开启viewBinding
]
```

###### packagingOptions @packagingoptions  
Android平台云端打包时build.gradle的buildFeatures配置项,支持的属性参考:[Android官方文档](https://developer.android.google.cn/reference/tools/gradle-api/7.4/com/android/build/api/dsl/PackagingOptions),如下示例源码:  
```json  
"packagingOptions": [
	"exclude 'META-INF/LICENSE'",    //排除文件META-INF/LICENSE
	"exclude 'META-INF/LICENSE.txt'" //排除文件META-INF/LICENSE.txt
]
```

云端打包默认包含以下配置:  
- pickFirst 'lib/*/libstlport_shared.so'  
- pickFirst 'lib/*/libc++_shared.so'  

177 178 179 180 181 182 183
##### IOS配置 @distribute-ios

<!-- MANIFESTJSON.distribute_ios.description -->

<!-- MANIFESTJSON.distribute_ios.table -->

<!-- MANIFESTJSON.distribute_ios.compatibility -->
D
DCloud_LXH 已提交
184

DCloud-yyl's avatar
DCloud-yyl 已提交
185 186 187

## 其它设置  

DCloud-yyl's avatar
DCloud-yyl 已提交
188
### URL Scheme @urlScheme  
DCloud-yyl's avatar
DCloud-yyl 已提交
189 190 191 192
uni-app x 项目 manifest.json 文件不再提供 url scheme 配置,HBuilderX4.18及以上版本支持在 app 原生应用配置文件中进行设置,详情参考:  
- [Android平台 url scheme 配置](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#urlscheme)  
- [iOS平台 url scheme 配置](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-ios.html#urlscheme)  

DCloud-yyl's avatar
DCloud-yyl 已提交
193 194
**注意**  
- uni-app x项目标准基座已配置 url scheme 值:"uniappx"
DCloud-yyl's avatar
DCloud-yyl 已提交
195
- 配置 url scheme 需提交云端打包才能生效  
DCloud-yyl's avatar
DCloud-yyl 已提交
196

DCloud-yyl's avatar
DCloud-yyl 已提交
197 198 199
标准基座可通过此网页体验 Url Scheme 启动 App:[https://uniappx.dcloud.net.cn/scheme.html](https://uniappx.dcloud.net.cn/scheme.html)


DCloud-yyl's avatar
DCloud-yyl 已提交
200
### Universal Link @ulink  
201

DCloud-yyl's avatar
DCloud-yyl 已提交
202 203
uni-app x 项目 manifest.json 文件不再提供 iOS 平台的 通用链接(universal link)相关配置,HBuilderX4.18及以上版本支持在 iOS原生应用配置文件中通过 `关联域(Associated Domains)` 配置通用链接,详情参考:
- [iOS平台通用链接配置教程](https://uniapp.dcloud.net.cn/tutorial/app-ios-capabilities.html#%E9%80%9A%E7%94%A8%E9%93%BE%E6%8E%A5-universal-link)  
DCloud-yyl's avatar
DCloud-yyl 已提交
204

DCloud-yyl's avatar
DCloud-yyl 已提交
205 206 207 208 209
**注意**  
- uni-app x项目标准基座已配置 universal link 值:"https://uniappx.dcloud.net.cn/ulink",但重签名会使得通用链接配置失效,无法通过通用链接启动标准基座  
- 配置 universal link 需提交云端打包才能生效


D
DCloud_LXH 已提交
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237
## 示例
```json
{
    "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"
			}
		}
	}
}
```

DCloud-yyl's avatar
DCloud-yyl 已提交
238
<!-- MANIFESTJSON.tutorial -->
DCloud-yyl's avatar
DCloud-yyl 已提交
239