陈小小
陈小小
  • 发布:2026-05-26 18:00
  • 更新:2026-05-26 18:00
  • 阅读:29

【报Bug】强制移除READ_MEDIA_VIDEO 和 READ_MEDIA_IMAGES 无效

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win11

HBuilderX类型: 正式

HBuilderX版本号: 5.07

手机系统: Android

手机系统版本号: Android 16

手机厂商: 华为

手机机型: 华为mate70

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"targetSdkVersion" : 35,
"minSdkVersion" : 22,
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ],
"excludePermissions" : [
"<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",
"<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"
]
},

操作步骤:

hbuilder 可视化工具 强制移除的权限

预期结果:

通过谷歌权限校验

实际结果:

谷歌拒绝

bug描述:

按照文档配置了强制移除权限,打包aab包上传谷歌还是无法通过

2026-05-26 18:00 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

好的,我们来评审一下这个 bug 反馈。

首先,从整体来看,这是一个非常有价值且描述相对清晰的反馈。它直击了许多开发者在发布安卓应用到 Google Play 时遇到的一个痛点——权限移除无效的问题。

反馈内容完整性评估

  • BUG 标题:简明扼要,直接点明了问题核心:excludePermissions 配置未生效。
  • BUG 描述:很清晰。用户说明了已按照文档配置,但打包上传 Google Play 后审核依然不通过,这为后续排查指明了方向。
  • 代码示例:这部分存在一个关键问题。用户提供的 manifest.json 配置片段显示,excludePermissions 节点被放在了 "app-plus" -> "distribute" -> "android" 路径下。根据优先知识库中的记录,对于 HBuilderX 5.07 这个版本,正确的配置路径应该是 "app-android" -> "distribute" 节点下。旧的路径可能会导致配置解析失败,这正是问题可能所在。目前提供的配置片段不能直接达到预期效果。
  • 复现步骤:描述不够细致。“hbuilder 可视化工具 强制移除的权限” 这个描述比较笼统。虽然用户意图是好的,但没有说明具体是在可视化界面的哪个位置操作,也没有说明打包时选择的是“云打包”还是“本地打包”。不过结合上下文和大量类似反馈,官方人员能够理解其操作意图,复现难度不大。
  • 预期结果:“通过谷歌权限校验”是一个非常合理且明确的预期。
  • 实际结果:“谷歌拒绝”是用户遇到的实际障碍,这与预期结果相悖,构成了一个待解决的问题,并非误报。
  • 分类信息:非常完整。操作系统(Windows 11)、HBuilderX 版本(5.07)、目标平台(Android 16)、Vue 版本(Vue2)、设备信息(华为 mate70)等关键信息都提供了,这对于定位问题非常有帮助。

Bug 是否成立及原因分析

这个 Bug 成立,但问题很可能不在于 excludePermissions 功能本身有缺陷,而在于用户的配置路径不正确

根据优先知识库中的信息,HBuilderX 4.71 及以上版本对 manifest.json 的结构进行了调整,与安卓相关的配置(包括 permissionsexcludePermissions)应放在 "app-android" 节点下。

你当前的配置:

// 你当前的配置(旧版路径)  
"app-plus" : {  
    "distribute" : {  
        "android" : {  
            // ...  
            "excludePermissions" : [...]  
        }  
    }  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
这很可能是导致配置未生效的根本原因。云端打包服务器在解析时,可能无法正确识别旧路径下的 excludePermissions 配置,从而未能移除 READ_MEDIA_IMAGESREAD_MEDIA_VIDEO 权限。

解决方案

请将你的 manifest.json 源码视图修改为以下结构,将安卓相关配置迁移到 "app-android" 下:

{  
    "app-android": {  
        "distribute": {  
            "permissions": [  
                "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",  
                // ... 其他你需要的权限  
            ],  
            "excludePermissions": [  
                "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",  
                "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>"  
            ]  
        }  
    }  
}

本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent

补充排查思路

如果修改路径后问题依旧,可以尝试以下排查步骤:

  1. 检查第三方插件/模块:你项目中配置了 Camera 模块。请确认是否使用了其他 uni原生插件uts插件。这些插件可能会作为依赖,强制引入 READ_MEDIA_IMAGESREAD_MEDIA_VIDEO 权限。如果存在这种情况,可能需要联系插件作者或寻找替代方案。
  2. 验证打包结果:打包完成后,可以将 .aab 文件后缀改为 .zip,解压后查看 base/manifest/AndroidManifest.xml 文件,使用文本搜索 READ_MEDIA_IMAGESREAD_MEDIA_VIDEO,以最终确认这些权限是否真正被移除。

相关参考

关于 Android 权限的强制移除配置,你可以参考官方文档中的详细说明:Android原生应用清单文件和资源 - 移除Android权限

另外,在 ask 社区中也有与你情况类似的讨论,官方人员曾指出需要检查源码视图中的配置节点,你可以参考一下:【报Bug】manifest.json配置了强制移除的权限,打包上架谷歌提示权限还在

内容为 AI 生成,仅供参考

要回复问题请先登录注册