Google Play审核因通话日志被拒,未用相关权限求答疑
检查第三方依赖库的权限:很多第三方SDK(比如广告、统计、短信验证类库)会自带权限声明,可能偷偷加入通话日志相关权限并合并到最终的Manifest中。打开Android Studio的Manifest编辑器,切换到底部的
Merged Manifest视图,全局搜索CALL_LOG关键词,定位到引入该权限的依赖库。找到后,在你的主Manifest中用tools:node="remove"手动移除这些权限,示例代码:<uses-permission android:name="android.permission.READ_CALL_LOG" tools:node="remove"/> <uses-permission android:name="android.permission.WRITE_CALL_LOG" tools:node="remove"/>排查隐式权限调用:部分SDK可能通过反射、动态权限请求的方式调用通话日志API,即使Manifest没声明,Google的自动化检测也能捕捉到。全局搜索项目内的
READ_CALL_LOG、WRITE_CALL_LOG、CallLog关键词,包括所有依赖库的源码(可通过Android Studio的Project Files视图查看jar/aar内部代码)。核对Google Play控制台权限声明:可能你在控制台填写权限用途时误选了通话日志相关选项,即使代码里没用到,也会触发审核拒绝。进入Google Play Console的应用权限设置页面,确认仅声明了
READ_SMS和READ_PHONE_STATE,删除所有与通话日志相关的声明内容。验证混淆后的代码:开启混淆后,部分代码被混淆可能导致Google检测工具误判。可以尝试生成未混淆的APK提交审核(仅用于排查),或者在混淆规则中保留权限相关类名,避免被误识别。
检查targetSdkVersion配置:如果targetSdkVersion低于Android 10(API 29),权限处理逻辑不符合最新规范,也可能触发审核异常。尽量升级到当前最新的targetSdkVersion,确保权限请求行为符合Google的要求。
内容的提问来源于stack exchange,提问作者leo

