manifest.md 8.1 KB
Newer Older
D
DCloud_LXH 已提交
1 2
# manifest.json

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

W
wanganxp 已提交
5
uni-app x 目前不支持配置splash图,因uni-app x打包后启动速度非常快,可以自己做一个简单的uvue页面来当做splash。
W
x  
wanganxp 已提交
6

W
wanganxp 已提交
7
uni-app x 不再提供内置模块选择,而是提供了摇树机制自动选择内置模块,具体[见下](#treeShaking)
W
x  
wanganxp 已提交
8

D
DCloud_LXH 已提交
9 10 11 12 13 14 15
## 配置项列表

<!-- MANIFESTJSON.manifest.description -->

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

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

21
### UNI-APP-X配置 @manifest-uni-app-x
D
DCloud_LXH 已提交
22 23 24 25 26

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

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

DCloud-yyl's avatar
DCloud-yyl 已提交
27

28
### APP配置 @manifest-app
DCloud-yyl's avatar
DCloud-yyl 已提交
29

D
DCloud_LXH 已提交
30
<!-- MANIFESTJSON.manifest_app.description -->
DCloud-yyl's avatar
DCloud-yyl 已提交
31

D
DCloud_LXH 已提交
32
<!-- MANIFESTJSON.manifest_app.table -->
DCloud-yyl's avatar
DCloud-yyl 已提交
33

34 35 36 37 38 39 40 41
#### Android权限配置@permissions

uni-app x 的权限配置,移入了[AndroidManifest.xml](../tutorial/app-nativeresource-android.md#permissions)中。

使用[uni内置模块](#utsmodules)时,云端打包会自动添加模块需要的Android权限,不需要在[AndroidManifest.xml](../tutorial/app-nativeresource-android.md#permissions)中配置。

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

DCloud-yyl's avatar
DCloud-yyl 已提交
42

43
#### DISTRIBUTE配置 @app-distribute
DCloud-yyl's avatar
DCloud-yyl 已提交
44

D
DCloud_LXH 已提交
45
<!-- MANIFESTJSON.app_distribute.description -->
DCloud-yyl's avatar
DCloud-yyl 已提交
46

D
DCloud_LXH 已提交
47
<!-- MANIFESTJSON.app_distribute.table -->
DCloud-yyl's avatar
DCloud-yyl 已提交
48 49


50
##### App端图标配置 @distribute-icons
DCloud-yyl's avatar
DCloud-yyl 已提交
51

D
DCloud_LXH 已提交
52
<!-- MANIFESTJSON.distribute_icons.description -->
53

D
DCloud_LXH 已提交
54
<!-- MANIFESTJSON.distribute_icons.table -->
55

D
DCloud_LXH 已提交
56 57
**注意**
- App端图片相关配置,建议在HBuilderX中 manifest.json 的可视化界面操作,不推荐手动在源码视图中修改
DCloud_Heavensoft's avatar
DCloud_Heavensoft 已提交
58
- 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)
59

60
###### Android图标配置 @icons-android
D
DCloud_LXH 已提交
61 62 63 64 65

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

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

66
###### iOS图标配置 @icons-ios
D
DCloud_LXH 已提交
67 68 69 70 71 72

<!-- MANIFESTJSON.icons_ios.description -->

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


73
###### iPhone图标配置 @ios-iphone
D
DCloud_LXH 已提交
74 75 76 77 78 79

<!-- MANIFESTJSON.ios_iphone.description -->

<!-- MANIFESTJSON.ios_iphone.table -->


80
###### iPad图标配置 @ios-ipad
D
DCloud_LXH 已提交
81 82 83 84 85 86

<!-- MANIFESTJSON.ios_ipad.description -->

<!-- MANIFESTJSON.ios_ipad.table -->


87
##### ANDROID配置 @distribute-android
D
DCloud_LXH 已提交
88 89 90 91 92 93

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

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

**注意**
DCloud-yyl's avatar
DCloud-yyl 已提交
94
- `abiFilters` 用于指定应用需要支持的CPU类型,字符串数组类型,字符串可取值"armeabi-v7a"、"arm64-v8a"、"x86"、"x86_64",默认值为["arm64-v8a"]。
D
DCloud_LXH 已提交
95 96 97
- `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)
DCloud-yyl's avatar
DCloud-yyl 已提交
98

99
##### IOS配置 @distribute-ios
DCloud-yyl's avatar
DCloud-yyl 已提交
100

D
DCloud_LXH 已提交
101
<!-- MANIFESTJSON.distribute_ios.description -->
DCloud-yyl's avatar
DCloud-yyl 已提交
102

D
DCloud_LXH 已提交
103
<!-- MANIFESTJSON.distribute_ios.table -->
DCloud-yyl's avatar
DCloud-yyl 已提交
104 105


D
DCloud_LXH 已提交
106
## 示例
DCloud-yyl's avatar
DCloud-yyl 已提交
107 108 109 110 111 112 113 114
```json
{
    "name" : "uni-app x",
    "appid" : "__UNI__XXXXXXX",
    "description" : "描述信息",
    "versionName" : "1.0.0",
    "versionCode" : "100",
    "uni-app-x":{
D
DCloud_LXH 已提交
115
      "flex-direction": "column"
DCloud-yyl's avatar
DCloud-yyl 已提交
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
    },
    "vueVersion" : "3",
	"app": {
		"distribute": {
			"syncDebug": true,
			"android": {
				"packagename": "Android包名",
				"abiFilters": [
					"armeabi-v7a","arm64-v8a"
				],
				"minSdkVersion": "21",
				"targetSdkVersion": "32"
			},
			"ios": {
				"appid": "iOS Bundle ID"
			}
		}
	}
}
```
W
wanganxp 已提交
136

W
x  
wanganxp 已提交
137
## 模块的摇树@treeShaking
W
wanganxp 已提交
138 139 140 141 142 143 144 145 146 147

uni-app x的Android基础库体积是7M,打包后的apk体积是基础库的体积加上开发者的代码及代码引用的模块的体积。有些模块涉及so库,覆盖的cpu指令越多,包体积越大。

在uni-app js引擎版中,内置模块如video,是开发者在manifest.json中手动勾选配置的。

但在uni-app x中,不需要手动配置。

HBuilderX3.93版本起,编译器支持扫描代码,摇树treeShaking,自动引入或剔除不需要的内置模块。

如应用中没有使用video组件相关功能,将不再包含video内置模块,减少安装包体积。
W
x  
wanganxp 已提交
148

149
**摇树注意事项:**
W
x  
wanganxp 已提交
150 151 152
当你打包自定义基座时,如果你的工程代码没有使用video、定位、相册、摄像头等涉及三方sdk或敏感权限的api,打出的自定义基座包就不会包含这些组件和api的功能,那么在这些自定义基座上运行时,调用相关的组件和api就会报错。\
此时您需要在工程中写相关的代码,如引用video组件或调用定位api,保存代码后重新打包自定义基座,才会包含相关模块。

DCloud-yyl's avatar
DCloud-yyl 已提交
153 154
您在工程中下载的ext api、三方uts插件也同理,没有引用就不会打进去。

155
### App端支持摇树的内置模块列表@utsmodules
DCloud-yyl's avatar
DCloud-yyl 已提交
156

157 158 159
- uni-network
  网络请求(文件上传/下载)模块,包括API:[uni.downloadFile](./api/download-file.md)[uni.request](./api/request.md)[uni.uploadFile](./api/upload-file.md)
  依赖的模块:无
DCloud-yyl's avatar
DCloud-yyl 已提交
160

161 162 163
- uni-getLocation-system
  系统定位模块,包括API:[uni.getLocation](./api/get-location.md)
  依赖的模块:无
DCloud-yyl's avatar
DCloud-yyl 已提交
164

165 166
- uni-video
  [video视频组件](./component/video.md)模块,包括内置组件:[video](./component/video.md);包括API:[uni.createVideoContext](./api/create-video-context.md)
W
x  
wanganxp 已提交
167

168 169 170
- uni-media
  多媒体相关API模块,包括API:[uni.chooseImage](./api/choose-image.md)[uni.previewImage](./api/preview-image.md)[uni.saveImageToPhotosAlbum](./api/save-image-to-photos-album.md)
  依赖的模块:无
DCloud-yyl's avatar
DCloud-yyl 已提交
171

172 173 174
- uni-cloud-client
  调用uniCloud[云函数/云对象](../uniCloud/cf-functions.md)模块,包括API:[uniCloud.importObject](../uniCloud/cloud-obj.md#%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%B0%83%E7%94%A8)[uniCloud.callFunction](../uniCloud/cf-callfunction.md#callfunction%E6%96%B9%E6%B3%95)
  依赖的模块:uni-media、uni-network
DCloud-yyl's avatar
DCloud-yyl 已提交
175

176 177 178
- uni-push
  [uni-push统一推送](../unipush-v2.md)模块(`HBuilderX3.97+`),包括API:[uni.createPushMessage](../api/plugins/push.md#createpushmessage)[uni.getPushClientId](../api/plugins/push.md#getpushclientid)[uni.offPushMessage](../api/plugins/push.md#offpushmessage)[uni.onPushMessage](../api/plugins/push.md#onpushmessage)
  依赖的模块:无
DCloud-yyl's avatar
DCloud-yyl 已提交
179

180 181
- uni-facialRecognitionVerify
  [uni实人认证](../uniCloud/frv/intro.md)模块,包括API:[uni.getFacialRecognitionMetaInfo](../api/plugins/facialRecognitionVerify.md#getfacialrecognitionmetainfo)[uni.startFacialRecognitionVerify](../api/plugins/facialRecognitionVerify.md#startfacialrecognitionverify)
W
x  
wanganxp 已提交
182 183
  依赖的模块:无

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

<!-- MANIFESTJSON.tutorial -->