manifest.json中最常手动修改的配置项是应用名称、版本号、图标路径、android/ios包名或bundle id、权限声明;其他字段多数为默认值或仅特定场景调整。

manifest.json 里哪些配置项最常被改
大部分项目真正需要手动改的,就那么几项:应用名称、版本号、图标路径、Android/iOS 的包名或 Bundle ID、权限声明。其他字段多数是默认值或只在特定场景才动。
常见错误现象:versionCode 写成字符串(如 "100")导致云端打包失败;appid 被误删或填错,影响 DCloud 云服务调用;app-plus 下的 distribute.android.permissions 漏加,真机调试时相机/定位等功能直接报错无提示。
-
name和description直接写中文或带空格的字符串,没问题,但上架应用商店时建议用英文+简短描述 -
versionName是展示给用户的(如"2.3.1"),versionCode必须是整数且每次发布递增(如231),不能是浮点或字符串 -
app-plus.id在 HBuilderX 工程中对应 Android 的 package name,必须符合 Java 包名规范(全小写、点分隔、不能以数字开头),例如"com.example.myapp" - 图标路径要真实存在,且尺寸符合要求:Android 要
36x36到192x192多套,iOS 要60x60、120x120、180x180;路径写错(比如漏了static/前缀)会导致图标显示为白块
Android 权限怎么加才生效
权限不是写在哪都管用。uni-app 里有两种加法:一种走 manifest.json 的封装层,一种绕过封装直写 AndroidManifest.xml。前者简单但有限制,后者灵活但容易出错。
使用场景:如果只是加 android.permission.CAMERA、android.permission.ACCESS_FINE_LOCATION 这类标准权限,优先走 manifest.json;如果要用 android:exported="true" 或自定义 intent-filter,就必须新建 AndroidManifest.xml 文件。
- 在
manifest.json中加权限,写在app-plus.distribute.android.permissions数组里,每个元素是字符串,例如:"android.permission.READ_EXTERNAL_STORAGE" - 不要重复声明同一权限——
manifest.json和AndroidManifest.xml同时写了INTERNET,云端打包会合并冲突,日志里报duplicate permission - Android 12+(targetSdkVersion ≥ 31)要求显式声明
android:exported,这个无法通过manifest.json配置,必须进AndroidManifest.xml手动补 - 所有权限声明,无论哪种方式,都必须在用户首次使用功能前主动调用
uni.authorize或uni.getSystemInfo检查,否则系统不会弹授权框
minSdkVersion 和 targetSdkVersion 怎么设不踩坑
这两个值不是“越高越好”,也不是“照抄别人”。它们直接影响安装成功率、功能兼容性和审核风险。
性能 / 兼容性影响:把 minSdkVersion 设太高(比如 26),会直接排除掉约 8% 的 Android 用户(截至 2026 年数据);把 targetSdkVersion 设太低(比如仍用 28),Google Play 会拒绝上架新版本,国内主流应用市场也会警告“未适配新系统行为”。
-
minSdkVersion建议设为 21(Android 5.0)起步,低于这个值的设备已基本退出主流市场;若项目用了 WebAssembly 或某些新 JS API,可能需提到 23+ -
targetSdkVersion应尽量贴近当前 Android 主流版本,2026 年推荐设为 34(Android 14),但前提是已测试过后台限制、通知渠道、剪贴板变更等行为差异 - 这两个值都在
manifest.json → App常用其它设置 → Android设置里填,填完必须提交云端打包才能验证是否生效;真机运行时即使改了也看不到效果 - HBuilderX 3.6.0+ 支持在项目根目录新建
AndroidManifest.xml覆盖这些值,但不推荐——除非你明确知道package属性和命名空间必须严格匹配云端打包配置,否则极易打包失败
AndroidManifest.xml 文件怎么写才不被云端打包拒绝
新建 AndroidManifest.xml 不是为了炫技,而是解决 manifest.json 封装不了的问题。但它一旦存在,就会参与云端打包的 XML 合并流程,格式或内容错一点,整个包就打不出来。
容易踩的坑:文件名大小写写成 androidmanifest.xml 或 AndroidManifest.XML;根节点漏掉 xmlns:tools;package 值和云端打包配置的包名不一致;在 <application></application> 外写了 <activity></activity> 标签。
- 文件必须放在项目根目录,右键“新建 → 自定义文件”,输入准确名称:
AndroidManifest.xml - 根节点
<manifest></manifest>必须带两个命名空间:xmlns:android="http://schemas.android.com/apk/res/android"和xmlns:tools="http://schemas.android.com/tools" -
package属性值必须和你在 HBuilderX 里配置的 Android 包名完全一致(包括大小写),例如io.dcloud.xxx - 所有自定义内容应写在
<application></application>内部,比如<meta-data></meta-data>、<provider></provider>、带android:exported="true"的<activity></activity> - 不要在
AndroidManifest.xml里重复manifest.json已配置的权限或 application 属性,冲突时以AndroidManifest.xml为准,但日志会报警告
AndroidManifest.xml 或 manifest.json 后,没重新提交云端打包,就直接看真机运行结果——而真机运行根本不读这些配置,只读本地调试包,自然看不出变化。











