在 Flutter 项目里有三个AndroidManifest.xml的配置文件
android/app/src/main/AndroidManifest.xml
android/app/src/profile/AndroidManifest.xml
android/app/src/debug/AndroidManifest.xml
这几个 Manifest 文件确实会同时存在。区别主要在于 构建模式(build flavor)。
android/app/src/main/AndroidManifest.xml
- 主清单文件(主入口),无论是 debug / profile / release 模式都会加载。这里放的是 通用配置,比如:
- 应用包名(applicationId)
- 权限声明(
<uses-permission ...>),如CAMERA、INTERNET - 启动 Activity
- 主题、图标配置
android/app/src/profile/AndroidManifest.xml
- Profile 模式专用清单。
- Flutter 有三种常见构建模式:
debug:调试模式(默认flutter run)profile:性能分析模式(flutter run --profile)release:发布模式(flutter run --release/ 打包 APK)
- Profile 模式是 介于 Debug 和 Release 中间的模式,主要用来做性能分析和调优。
src/profile/AndroidManifest.xml里的配置会 覆盖/合并 main 清单,只在 profile 构建时生效。
android/app/src/debug/AndroidManifest.xml
Debug 模式专用清单。
和 profile 类似,只在 debug 模式构建时生效。
例如 Flutter 默认会在 debug manifest 里加上:
<application android:usesCleartextTraffic="true"/>这样方便调试 HTTP 请求(不用 HTTPS 也能跑)。
它们的关系:最终打包时会 合并清单文件
main/AndroidManifest.xml是基础- 如果是 debug 模式,会合并
debug/AndroidManifest.xml - 如果是 profile 模式,会合并
profile/AndroidManifest.xml - 如果是 release 模式,就只用
main/AndroidManifest.xml