问题描述
使用 HBuilderX 5.05 编译链构建传统 uni-app Vue3 Android 应用,并通过 DCloud 传统云打包生成 APK 后,发现最终 AndroidManifest.xml 中存在两个不同的 ContentProvider,但它们使用完全相同的 authority。
两个 Provider 分别为:
io.dcloud.common.util.DCloud_FileProvider
io.dcloud.sdk.base.service.provider.DCloudAdFileProvider
共同使用的 authority 为:
io.dcloud.LedgerWindowTest.dc.fileprovider
通过 Android SDK 工具和独立 AndroidManifest 二进制解析,均确认这两个 Provider 声明真实存在,并非解析器误报。
该项目仅用于验证 UTS Android Application Hook、Activity 生命周期及 FLAG_SECURE 窗口保护,不需要广告功能。
已进行的排查
第一次传统云打包后,发现两个 Provider 的 authority 重复。
第二次云打包时,取消广告相关选项,并配置强制移除24项无关 Android 权限。
第二版 APK 静态检查结果:
- 24项无关权限已成功移除,最终仅保留4项权限。
- 两个 Provider 仍然存在,并继续使用相同 authority。
- DEX、SO 和应用资源与第一版一致。
- APK 包名、AppID及签名均正常。
- 原生 UTS Hook 注册及 FLAG_SECURE 代码完整保留。
DEX 中还发现多处与 .dc.fileprovider 后缀相关的引用,因此没有擅自删除 Provider 或直接修改 authority。
希望官方确认
- 这两个 Provider 在同一个 APK 中使用相同 authority,是否属于 DCloud Android SDK 的预期设计?
- 是否可能造成 ContentResolver 路由、文件共享或 FileProvider 路径配置异常?
- 未使用广告功能时,为什么仍包含 DCloudAdFileProvider?
- 是否有官方支持的方式移除不必要的广告 Provider,或避免 authority 重复?
- 是否已有相关修复版本,或者有推荐的兼容处理方式?
目前仅完成 APK 静态分析,尚未安装运行,因此没有观察到实际安装失败或运行崩溃。希望官方先确认这一重复配置是否安全,以及应采用哪种官方支持的处理方式。
0 个回复