【问题标题】:Playstore prompts to 'Declare sensitive permissions'Playstore 提示“声明敏感权限”
【发布时间】:2019-06-21 06:02:11
【问题描述】:

我们的 Android Manifest 没有任何 SMS 权限。我们做了直到 4 个版本回来。但是 Playstore 还是会提示我们填写敏感权限声明,方式如下 -

之前声明的权限(3个权限)
android.permission.RECEIVE_SMS
android.permission.SEND_SMS
android.permission.READ_SMS

这可能是因为我们正在使用的库仍需要这些权限吗?我们怎样才能避免这种情况?

我们的 Manifest 具有以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_PHONE_SUB_INFO" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
<uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />

【问题讨论】:

  • 进入位于/app/build/outputs/logs 中的文件并搜索您尚未声明的权限。它将显示您的哪些依赖项可能已经声明了这些。
  • 检查合并清单以查看库的权限
  • 我在几天前就遇到了这个问题。它现在由谷歌技术支持解决。 *.com/a/54399062/2587027
  • 我遇到了同样的问题。我不使用 send_sms 权限和我正在使用的任何第三方库,也没有声明该权限。我签入了合并的清单文件,但没有找到声明的权限。 @wadali 您是否遇到过您在此处发布链接的相同问题或相关其他问题?

标签: android permissions android-manifest android-permissions


【解决方案1】:

我们是如何解决的:

  1. 确定我们合并的清单是否具有不属于策略的权限。我们关注了this 文章,这篇文章导致我们在此处查看合并的清单文件:app/build/intermediates/manifests/full/debug/AndroidManifest.xml

  2. 我们通过查看日志确定了哪个依赖项添加了权限:app/build/outputs/logs/manifest-merger-debug-report.txt

  3. 我们发现 Manifest 文件中存在 3 个权限: android.permission.READ_SMS,android.permission.SEND_SMS,android.permission.RECEIVE_SMS.

  4. 要删除它们,我们在AndroidManifest.xml 中添加了:

<uses-permission android:name="android.permission.READ_SMS" tools:node="remove" />
<uses-permission android:name="android.permission.SEND_SMS" tools:node="remove" />
<uses-permission android:name="android.permission.RECEIVE_SMS" tools:node="remove" />
  1. 我们更新了所有的依赖版本

  2. 将具有所有这些已删除权限的 APK 推送到我们 Google Play 控制台上打开的所有轨道(内部测试轨道、Alpha、Beta 和生产)中。

警告在 12 小时内被删除。

【讨论】:

  • 你能告诉我,你选择了什么权限声明表 -> 核心功能?它给了我这个错误imgur.com/a/VJ87sK7。即使我像你一样删除了权限
  • 嗨 Suyash,您可以选择“否”,它会询问您的应用是否符合政策。这样您就不必填写完整的表格。几个小时后(对我们来说花了 12 个小时),警告会自动消失。
  • 我已将当前的 APK 上传到所有活跃的频道和 boooom...警告消失了 + 应用程序已上线 [在 5 分钟内]。干杯!
  • 帮了我很多忙。 app/build/outputs/logs/manifest-merger-debug-report.txt 主要内容。
  • @SuyashChavan 谢谢你,但我们没有选择“否”的选项。你能帮助我们吗?