尽管删除了 SMS 或 CALL LOG 权限,但应用更新在 Play Store 上一次又一次被拒绝

App update getting rejected over and over on Play Store, in spite of removing SMS or CALL LOG permission

我在上传 apk 时遇到问题。 Play 控制台不允许我上传 apk 并出现此错误 "You can't edit this app until you create a new app release declaring sensitive permissions.".
在将我的应用程序的最低 API 级别从 16 升级到 19 后,我遇到了这个问题。我这样做是为了支持我在上传之前集成的库,即 RazorPay。 所以,我重新检查了我的合并清单是否添加了任何不需要的权限,但它没有。为了安全起见,我添加了删除合并清单权限的代码。还是不行。
我试图通过有意添加短信权限来触发声明表,并通过反短信钓鱼(随机)填写。

我能够推出我的应用程序,但从那时起,每当我尝试上传我的应用程序时,即使没有短信或通话记录许可,Google Play 仍然拒绝该应用程序。没有选择权限,无法重新提交申报表。

这是我的清单许可:

<uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <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_WIFI_STATE" />


    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />


    <uses-permission
        android:name="android.permission.RECEIVE_SMS" tools:node="remove" />
    <uses-permission
        android:name="android.permission.READ_SMS" 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" />
    <uses-permission
        android:name="android.permission.CALL_PHONE" tools:node="remove" />

首先,你需要检查是否所有的nasty权限已经被移除。您需要在 terminal/console:

中通过 运行 以下命令检查您当前的权限
aapt d permissions your.company.name.apk

在Google播放中看到Permissions

然后,将它们标记为已删除。

Last,(这曾经发生在我身上),检查你在 Google Play 中的应用程序页面,并尝试查找你是否有 AlphaBeta 应用程序的版本。通过为 AlphaBeta 发布版本而不向其添加 apk 来删除它们。然后保存并创建发布。这应该使 AlphaBeta 被生产版本覆盖。

既然您使用的是构建变体,那么请在您的最高优先级清单文件中定义它

  • 库清单:最低优先级
  • 主要清单:中等优先级
  • 构建 Vairant 清单:最高优先级

任何 android 图书馆都需要 AndroidManifest.xml。因此,问题可能是您的图书馆正在使用任何违反 google 权限策略的权限。

在等待 Google Play 支持团队的回复后,他们终于给了我一个有效的解决方案。

这是来自 Google 的电子邮件,它解决了我的问题:

嗨,

感谢您联系 Google Play 开发者支持。

相关团队正在对您的问题进行调查,请按照后续步骤告知我们 关于结果。

  1. 转到 Play 管理中心> 点击应用程序
  2. 在左侧菜单中,单击制作轨道旁边的 'Release management' > 'App releases' > 'Manage'。 > 'Create release'
  3. 在 'Android App Bundles and APKs to add' 旁边,点击 'Add from library' > 选择任何具有敏感权限的旧 APK(即版本 10000)以查看声明表。
  4. 在申报表中的核心功能下,请选择其他功能(即 'Default SMS Handler')并取消选中 'Anti-SMS Phishing'。
  5. 填写所有其他要求 > 单击 'Save'
  6. 返回页面顶部,在 'Android App Bundles and APKs to add' 部分下,单击具有敏感权限的 APK 旁边的 'Remove' 按钮(在步骤 #3 中添加)。
  7. 上传一个没有敏感权限的新 APK(具有更高版本代码)。 ---在步骤#7之后,应该没有显示申报表---
  8. 命中 'Save' > 'Review' > 'Start Rollout'

如果有人解决了这个问题,这会有所帮助。