更新Google Play服务依赖至15.0.0自动添加指定权限,求问必要性及来源
关于Google Play服务15.0.0自动添加BIND_GET_INSTALL_REFERRER_SERVICE权限的解析
嘿,我来帮你把这个问题拆解清楚~
为什么会自动添加这个权限?
从Google Play服务15.0.0版本开始,com.google.android.gms:play-services-installreferrer库(Google Play服务的子模块)会自动引入这个权限。这个权限是Google Play Referrer API正常工作的必要条件——它允许你的应用绑定到Google Play的GetInstallReferrerService,从而获取应用的安装来源信息(比如用户是从哪个渠道、链接下载安装的)。
很多时候,你并没有直接引入installreferrer库,但如果你的项目依赖了其他Google Play服务组件(比如play-services-analytics、play-services-ads,甚至核心的play-services库),升级到15.0.0+后这些组件会间接依赖installreferrer,进而自动把这个权限加入到你的Manifest中。
如何找出是哪个依赖引入的?
你可以用两种方法定位来源:
- Gradle依赖命令:在项目根目录的终端中执行(Windows系统替换为
gradlew.bat):
搜索输出结果中的./gradlew app:dependenciescom.google.android.gms:play-services-installreferrer,就能看到它的依赖路径(比如是被play-services-analytics引入的)。 - Android Studio依赖分析工具:打开
File > Project Structure > Modules > 你的App模块 > Dependencies,点击右上角的「Analyzer」按钮,搜索权限名称BIND_GET_INSTALL_REFERRER_SERVICE,就能直观看到对应的依赖链条。
是否需要保留这个权限?
- 如果你的应用需要追踪安装来源(比如做渠道推广统计、广告归因、用户来源分析),那必须保留这个权限——移除后Referrer API会失效,无法获取安装来源数据。
- 如果你的应用完全不需要这类追踪功能,那可以用你提到的代码移除它,不会影响其他Google Play服务功能的正常运行:
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE" tools:node="remove" />
内容的提问来源于stack exchange,提问作者Sarath Kumar
相关产品推荐
相关产品推荐

