Play Console Beta版本发布报错:未声明READ_PHONE_STATE却需隐私政策
解决Google Play控制台权限误报问题(未声明READ_PHONE_STATE却被要求隐私政策)
这种情况我碰到过好多次,大概率是第三方依赖库偷偷帮你添加了android.permission.READ_PHONE_STATE权限,而你自己没注意到——很多广告、统计类SDK会默认申请这类权限,哪怕你并没有主动在代码里使用它。
下面是具体的排查和解决步骤:
第一步:确认权限来源
打开Android Studio里的AndroidManifest.xml,切换到底部的Merged Manifest标签。这里会显示所有合并后的权限(包括你自己声明的和依赖库自动添加的),每个权限后面都会标注来源是哪个依赖模块。通过这个你就能找到到底是哪个库偷偷加了READ_PHONE_STATE权限。第二步:移除不需要的权限
如果确认这个权限对你的应用没用,直接在你的AndroidManifest.xml里主动移除它:<!-- 先在根manifest标签里添加tools命名空间 --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名"> <!-- 移除依赖库添加的READ_PHONE_STATE权限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" /> <!-- 你原本的VIBRATE权限 --> <uses-permission android:name="android.permission.VIBRATE"/> <!-- 其他manifest内容... --> </manifest>tools:node="remove"会强制把依赖库添加的这个权限从最终的Manifest里剔除。第三步:验证并重新打包
重新查看Merged Manifest,确认READ_PHONE_STATE权限已经消失。然后重新生成签名APK/App Bundle,上传到Google Play控制台。额外提示
有时候Google Play控制台会有缓存,上传新包后可能需要等几分钟再刷新页面,然后尝试重新启动Beta版本发布流程。如果还是有问题,再检查下是不是还有其他依赖库也加了这个权限,或者看看对应SDK的文档,有没有可以关闭权限申请的配置项。
内容的提问来源于stack exchange,提问作者Sanjay Kumar
相关产品推荐
相关产品推荐

