uniapp打包的apk谷歌包如何在所有版本代码中移除read_media_images/read权限

“在uniapp打包的apk谷歌包时,如何彻底移除所有版本代码中的read_media_images和read权限?尝试过修改manifest文件但某些机型仍会自动添加这些权限,有没有完整的解决方案?”

2 回复

在uniapp项目的manifest.json中,找到App权限配置,删除android.permission.READ_EXTERNAL_STORAGE权限。然后重新打包即可。


在 UniApp 打包的 APK 中移除 READ_EXTERNAL_STORAGE(或 READ_MEDIA_IMAGES,适用于 Android 13+)权限,需按以下步骤操作:

1. 检查并修改 manifest.json 文件

在 UniApp 项目的 manifest.json 中,移除或注释与存储权限相关的配置:

{
  "app-plus": {
    "distribute": {
      "android": {
        "permissions": [
          // 删除或注释以下行:
          // "<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
          // "<uses-permission android:name=\"android.permission.READ_MEDIA_IMAGES\"/>"
        ]
      }
    }
  }
}

2. 检查原生插件依赖

某些 UniApp 插件(如文件选择、图片上传)可能自动添加存储权限。解决步骤:

  • 在项目根目录检查 nativeplugins 文件夹中的插件配置。
  • 如插件非必需,直接移除;如必需,尝试寻找替代插件或联系插件开发者请求提供无权限版本。

3. 自定义原生配置(如需要)

若上述方法无效,通过原生工程配置:

  • 生成 Android 原生工程(HBuilderX 中选择 “生成本地 App 资源”)。
  • 打开 AndroidManifest.xml,手动删除以下权限代码:
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    
  • 重新打包 APK。

4. 验证权限移除

打包后,使用 APK 分析工具(如 Android Studio 的 APK Analyzer)检查最终 AndroidManifest.xml,确认权限已移除。

注意事项:

  • 功能影响:移除权限可能导致文件读写、图片选择等功能失效,需确保应用不依赖这些权限。
  • 目标版本READ_MEDIA_IMAGES 仅适用于 Android 13(API 33)及以上,低版本系统仍使用 READ_EXTERNAL_STORAGE

通过以上步骤,可彻底移除相关存储权限。如遇插件强制添加权限,需优先处理插件依赖问题。

回到顶部