升级Play Services 12.0.0后自动新增READ_PHONE_STATE权限问题
解决Google Play Services 12.0.0自动添加READ_PHONE_STATE权限的问题
我之前帮不少开发者排查过这类问题,本质是Google在Play Services 12.0.0版本中调整了部分库的权限依赖,导致你用到的play-services-auth或play-services-plus间接引入了READ_PHONE_STATE权限,而11.8.0版本没有这个情况。下面是具体的解决步骤:
1. 确认权限的来源
首先用Gradle命令查看完整的依赖树,定位到底是哪个子库带来了这个权限:
# Mac/Linux ./gradlew app:dependencies # Windows gradlew.bat app:dependencies
在输出里搜索READ_PHONE_STATE,就能找到对应的依赖路径,比如可能是play-services-auth下的某个组件默认声明了这个权限。
2. 手动移除不必要的权限
如果你的应用完全不需要读取手机状态的功能,可以直接在AndroidManifest.xml中强制移除该权限:
首先确保manifest根标签引入了tools命名空间:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.your.package.name">
然后添加权限移除声明:
<uses-permission android:name="android.permission.READ_PHONE_STATE" tools:node="remove" />
tools:node="remove"会告诉构建工具忽略所有依赖库中声明的这个权限,不会打包到最终的APK里。
3. 权限合规检查
如果你的应用确实需要READ_PHONE_STATE权限,那一定要在Google Play Console的权限声明部分准确说明用途,同时更新隐私政策,确保符合Google的权限使用规范,避免应用被拒。
内容的提问来源于stack exchange,提问作者chdryra
相关产品推荐
相关产品推荐

