# manifest.json `manifest.json` 是 uni-app x 项目的配置文件,用于设置应用的名称、版本、图标等信息。在 HBuilderX 中创建项目时此文件保存在根目录。 uni-app x 默认没有splash启动界面,因uni-app x打包后启动速度非常快,可以自己做一个简单的uvue页面来当做splash。HBuilderX3.99+版本新增支持配置splash启动界面,详情参考[启动界面配置](manifest-splashscreen.md)。 uni-app x 不再提供内置模块选择,而是提供了摇树机制自动选择内置模块,详情参考[模块配置](manifest-modules.md#treeShaking)。 ## 配置项列表 **注意** - `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 ### APP配置 @manifest-app #### Android权限配置@permissions uni-app x 的权限配置,移入了[AndroidManifest.xml](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions)中。 使用[uni内置模块](#utsmodules)时,云端打包会自动添加模块需要的Android权限,不需要在[AndroidManifest.xml](https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.md#permissions)中配置。 - HBuilderX3.97+版本标准基座已经包含了所有Android权限,在 uvue 页面中直接通过 uts 调用需要权限的 Android 系统 API 时,使用标准基座真机运行可直接通过[UTSAndroid.requestSystemPermission](../uts/utsandroid.md#requestSystemPermission)申请; - 使用自定义基座则需要在项目的[AndroidManifest.xml](https://uniapp.dcloud.io/tutorial/app-nativeresource-android.md#permissions)中配置要使用的权限,重新提交云端打包。 #### DISTRIBUTE配置 @app-distribute ##### App端图标配置 @distribute-icons **注意** - 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 ##### App端启动界面配置 @distribute_splashScreens ###### Android平台启动界面配置 @splashScreens_android ###### Android12启动界面配置 @splashScreens_android12 ###### Android12启动界面Logo图标配置 @android12_icon ###### Android12启动界面品牌图标配置 @androd12_brand ##### ANDROID配置 @distribute-android **注意** - `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) ## 示例 ```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" } } } } ```