uni-app应用中缺少images功能但云打包包含READ_MEDIA_IMAGES权限 导致google play因权限披露问题强制下架APP两次

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app应用中缺少images功能但云打包包含READ_MEDIA_IMAGES权限 导致google play因权限披露问题强制下架APP两次

信息类别 内容
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 win11
HBuilderX 正式
HBuilderX版本 4.24
手机系统 Android
手机系统版本 Android 14
手机厂商 小米
手机机型 Redmi Note11 Pro+
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  • 云打包google play渠道包,设置强制移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO。

预期结果:

  • 可以强制移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO

实际结果:

  • 无法移除READ_MEDIA_IMAGES和READ_MEDIA_VIDEO

bug描述:

应用中没有images相关功能,也在权限里进行了强制移除,但是打AAB包权限还是有READ_MEDIA_IMAGES和READ_MEDIA_VIDEO权限。维护了数据安全等但google给我们APP强制下架两次了,皆是这个原因。

  1. 怎么去掉,在安卓/IOS强制移除权限加了但还是有这个权限。
  2. 不能去掉的话能说明一下这俩权限干嘛的吗,怎么向google play进行说明和披露。

5 回复

怎么解决的呀 ,给后人留一个答案,谢谢

回复 s***@restosuite.ai: 强制移除了

回复 3***@qq.com: 请问,我也是在manifest.json中强制移除了,但google中提示还是存在这两个权限,您是怎么解决的呢?能解答一下吗,谢谢!

针对您提到的uni-app应用中缺少images功能但云打包包含READ_MEDIA_IMAGES权限,导致Google Play因权限披露问题强制下架APP的问题,以下是一些可能的解决方案,主要通过代码和配置层面来调整。

1. 移除不必要的权限

首先,如果应用确实不需要访问媒体图片库,那么应该直接从manifest.json中移除该权限。在uni-app项目中,manifest.json是配置Android和iOS权限的主要文件。

修改manifest.json

"mp-weixin": {
    // 其他配置...
},
"app-plus": {
    "distribute": {
        "android": {
            "permissions": [
                // 确保不包含"READ_MEDIA_IMAGES"
                // "android.permission.READ_MEDIA_IMAGES", // 移除这行
                "android.permission.INTERNET",
                // 其他必要的权限
            ]
        }
    }
}

2. 检查并更新云打包配置

如果您是通过DCloud的云打包服务进行打包,确保在云打包的配置中也未包含不必要的权限。云打包配置通常在DCloud开发者后台进行,检查并确保没有为Android平台添加READ_MEDIA_IMAGES权限。

3. 代码中避免调用相关API

确保应用代码中没有任何地方调用了与读取媒体图片库相关的API。这包括检查任何第三方库或插件,它们可能隐式请求该权限。

4. 使用动态权限请求(如果需要)

如果您的应用未来确实需要访问媒体图片库,可以考虑使用动态权限请求而不是在manifest.json中静态声明。这样,用户只有在应用尝试访问图片库时才会被提示授予权限,而不是在安装时就授予。

动态权限请求示例(Java/Kotlin)

由于uni-app主要使用Vue.js开发,通常不直接编写Java/Kotlin代码,但如果您有原生插件或需要自定义原生模块,可以在这些模块中实现动态权限请求。

if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.READ_MEDIA_IMAGES)
        != PackageManager.PERMISSION_GRANTED) {
    ActivityCompat.requestPermissions(thisActivity,
            new String[]{Manifest.permission.READ_MEDIA_IMAGES},
            MY_PERMISSIONS_REQUEST_READ_MEDIA_IMAGES);
}

5. 重新提交应用

在移除了不必要的权限并确认代码中没有调用相关API后,重新使用DCloud的云打包服务打包应用,并重新提交到Google Play进行审核。

通过上述步骤,您应该能够解决因权限披露问题导致的Google Play下架问题。

回到顶部