7***@qq.com
7***@qq.com
  • 发布:2026-07-04 09:01
  • 更新:2026-07-04 09:03
  • 阅读:82

【报Bug】应用中没有images相关功能,但云打包带着相关权限,google play因READ_MEDIA_IMAGES权限披露问题强制下架

分类:HBuilderX

HBuilderX 版本: 5.07
打包: 原生 App-云打包,targetSdk 35,minSdk 21
已配置: removePermissions(6 条 android.permission.* 字符串)、
nativeResources/android/AndroidManifest.xml tools:node=remove、
permissionExternalStorage: none,未勾选 Camera 模块,相册用 uni-chooseSystemImage
用 bundletool / check-aab-permissions.js 检测最终 AAB 的 AndroidManifest.xml
仍包含 READ_MEDIA_IMAGES、READ_MEDIA_VIDEO 等,请确认云打包是否支持 removePermissions 及修复合并顺序。

应该如何移除?

"permissionExternalStorage" : "none",
"permissions" : [
"<uses-permission android:name=\"android.permission.POST_NOTIFICATIONS\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_CONTACTS\"/>",
"<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.WRITE_CONTACTS\"/>",
"<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.MODIFY_AUDIO_SETTINGS\"/>",
"<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.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\" />",
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\" />",
"<uses-permission android:name=\"android.permission.GET_TASKS\" />"
],
"removePermissions" : [
"android.permission.READ_MEDIA_IMAGES",
"android.permission.READ_MEDIA_VIDEO",
"android.permission.READ_MEDIA_AUDIO",
"android.permission.READ_MEDIA_VISUAL_USER_SELECTED",
"android.permission.READ_EXTERNAL_STORAGE",
"android.permission.WRITE_EXTERNAL_STORAGE"
],
"minSdkVersion" : 21,
"targetSdkVersion" : 35

2026-07-04 09:01 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

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

针对你遇到的云打包后 READ_MEDIA_IMAGES 等权限无法移除的问题,这通常是因为配置方式与当前 HBuilderX 版本的生效规则不匹配。根据知识库中的信息,removePermissions 在某些场景下可能不生效,官方推荐使用 excludePermissions 进行配置。

结合你提供的配置和社区验证过的成功案例,请按照以下步骤操作:

1. 修正 manifest.json 配置

你目前使用的是 removePermissions,请将其替换为 excludePermissions。在源码视图中,找到 "app-plus" -> "distribute" -> "android" 节点,添加如下配置:

"excludePermissions": [  
    "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>",  
    "<uses-permission android:name=\"android.permission.READ_MEDIA_VIDEO\"/>",  
    "<uses-permission android:name=\"android.permission.READ_MEDIA_AUDIO\"/>",  
    "<uses-permission android:name=\"android.permission.READ_MEDIA_VISUAL_USER_SELECTED\"/>",  
    "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",  
    "<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"  
]

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

注意:根据 ask社区中的成功案例,使用 excludePermissions 可以有效移除 Google Play 禁止的媒体权限。

2. 使用可视化界面操作(推荐)

为了确保配置格式无误,可以直接在 HBuilderX 的可视化界面中操作:

  • 打开 manifest.json,切换到“App权限配置”或“安卓/iOS权限配置”视图。
  • 找到“Android云打包权限配置” -> “强制移除的权限”区域。
  • 点击添加,手动输入或粘贴以下权限字符串(无需额外标签,直接写权限名):
    • android.permission.READ_MEDIA_IMAGES
    • android.permission.READ_MEDIA_VIDEO
    • android.permission.READ_MEDIA_AUDIO
    • android.permission.READ_MEDIA_VISUAL_USER_SELECTED
    • android.permission.READ_EXTERNAL_STORAGE
    • android.permission.WRITE_EXTERNAL_STORAGE

3. 验证与排查

如果配置后仍然存在权限残留,可能是以下原因导致:

  • 原生插件引入:如果你使用了任何 uni 原生插件或 uts 插件,它们可能会在内部再次声明这些权限。建议检查所有已集成的插件文档,或暂时移除插件进行打包测试。
  • 模块勾选:确认 manifest.json 的“模块配置”中没有勾选“Camera&Gallery”等可能自动引入媒体权限的模块。你提到已使用 uni-chooseSystemImage,这通常不需要额外勾选相机模块。
  • 版本兼容性:你使用的 HBuilderX 5.07 在部分社区的反馈中(参考 ask 社区反馈)可能存在 excludePermissions 未完全生效的情况,建议尝试升级到最新的 Alpha 版(如 5.13)或将 HBuilderX 回退到已验证可用的 4.87 版本进行打包测试。

4. 关于 Google Play 的额外检查

  • targetSdk 35 的强制要求:Google Play 对 targetSdk 35 的应用审核非常严格,除了移除权限,还需确保在 Google Play Console 的后台“应用内容”->“敏感应用权限”中,对任何残留的系统权限做出合规披露声明。
  • AAB 包体检测:提交前,可以使用 bundletool 或 Android Studio 的 Analyze APK 功能,直接查看生成的 AAB 中的 AndroidManifest.xml,确认权限是否已被彻底移除。

如果按照上述步骤操作后问题依然存在,为了进一步定位问题,可以提供以下信息:

  1. 打包时的完整错误日志(如果有)。
  2. 项目中集成的所有 uni 原生插件或 uts 插件列表。

参考文档:移除Android权限官方说明

内容为 AI 生成,仅供参考

要回复问题请先登录注册