为什么我收到警告 - 此应用不符合 Google 播放权限政策,即使我的最新版本不需要这些权限?

Why I am receiving Warning - this app does not meet Google Play permissions policy, even though my latest version doesn't require these permission?

显示这条消息

This app does not meet the Google Play permissions policy relating to the use of SMS or CALL_LOG. You must fix this before March 9. 2019 or your app will be removed from Google Play. Note: if you have recently made a change, it can take up to 12 hours to update this message.

我之前版本的应用程序有这个权限,当它被拒绝时申请例外我 2 周前更新了应用程序并删除了这个权限。但是现在我收到了这条消息。

该政策适用于所有 APK,即使是那些在您的 Alpha 或 Beta 轨道上的 APK。您需要删除所有不符合要求的 APK。如果找不到删除方法,只需将其替换为符合要求的较新版本,或者创建一个 没有 APKs 的新版本,然后将该版本发布到 Alpha或 Beta 曲目。

编辑: 有赏金要求提供可靠或官方来源的答案。我可能希望看到我的徽章显示我是 Google Play 上的最佳回答者可能会让我有点可信。但这里有一些官方链接:

这些可能对最初的提问者没有帮助,但可能会帮助有不同问题的人通过谷歌搜索找到这个问题。

我在上一个应用程序版本中也收到了此警告。

解释:您收到此警告是因为您以某种方式直接或间接使用某些不符合 Google 播放权限政策.

的权限

间接意味着,您在项目中使用的任何第三方库可能已经在使用这些权限。当您构建项目时,它会将所有清单文件合并到一个 Merged Manifest 文件中。这就是您收到此警告的原因,因为您的最终清单具有任何这些权限。

解决方案 1: 构建项目后,

  • 打开项目的 AndroidManifest 文件。
  • 打开底部的 Merged Manifest 选项卡。
  • 搜索任何这些权限。 (示例- READ_SMS
  • 如果有,现在是时候删除它们了。检查示例

示例: 如果您在 Merged Manifest 文件中看到 READ_SMS 权限, 所以现在打开你项目的 AndroidManifest 文件并添加下面写的行以从你的项目中删除该权限-

<uses-permission android:name="android.permission.READ_SMS" tools:node="remove" />

在您的 AndroidManifest 文件中添加以上权限行,就这样。它将从合并的清单文件中删除权限,您的问题将得到解决。

AndroidManifest 文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.myapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_SMS" tools:node="remove" />

    <application
        android:name=".MyApp"
        android:allowBackup="false"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning"
        tools:replace="android:allowBackup">

        <activity
            android:name=".SplashActivity"
            android:screenOrientation="portrait"
            android:theme="@style/FullscreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

解决方案 2: Replace/Remove 使用这些权限的第 3 方库。

更新:

解决方案 3: 为了安全起见,您可以在 AndroidManifest 文件中添加这些行.

<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.SEND_SMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.WRITE_SMS"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.RECEIVE_WAP_PUSH"
    tools:node="remove" />
<uses-permission
    android:name="android.permission.RECEIVE_MMS"
    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.PROCESS_OUTGOING_CALLS"
    tools:node="remove" />

这些行将根据 Permission Policy 删除所有使用的限制权限。

希望对您有所帮助。

您应该检查工件库中的工件草稿。

要解决此问题,您必须放弃包含敏感权限的工件草稿并创建没有这些权限的新版本。

以下是在 Play 管理中心内进行检查的方法:

  1. 转到发布管理 > 工件库
  2. 展开活动 APK 和草稿 APK
  3. 扩展每个 APK 所需的权限

您可能还想查看 Permissions policy and review the Use of SMS or Call Log permission groups 帮助文章,其中描述了预期用途、例外情况、无效用途和替代实施选项以获得更多指导。

解决方案 1: 因为 在大多数情况下工作正常 只需更新权限 如下所示:

<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.SEND_SMS" tools:node="remove" />
<uses-permission android:name="android.permission.WRITE_SMS" tools:node="remove" />
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" tools:node="remove" />
<uses-permission android:name="android.permission.RECEIVE_MMS" 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.PROCESS_OUTGOING_CALLS" tools:node="remove" />

方案二:

但在某些情况下:在使用所有解决方案后,我们得到了相同的错误,所以现在我们可以通过检查一些字段来继续审查成功。它就像魅力一样。我们不能说它是完美的解决方案,但它确实有效。

您可以在下面查看它是如何更新成功的。

以上所有解决方案均无效。

终于在 Artifact Library 中找到了旧的 Active apk。它来自 "Internal test track"。没有丢弃按钮。所以我不得不创建新的 "Internal test track" apk,它具有固定的权限和高于旧版本的版本代码。

后记 "This app does not meet Google Play permissions policy" 错误消失了。