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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我收到警告 - 此应用不符合Google Play权限政策,即使我的最新版本不需要这些权限?相关的知识,希望对你有一定的参考价值。

它显示了这条消息

此应用不符合与使用SMS或CALL_LOG相关的Google Play权限政策。您必须在2019年3月9日之前解决此问题,否则您的应用将从Google Play中移除。注意:如果您最近进行了更改,则最多可能需要12小时才能更新此邮件。

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

答案

我在上一个应用版本上也收到了这个警告。

说明:您收到此警告是因为您以某种方式直接或间接使用了一些不符合Google Play权限策略的权限。

间接意味着,您在项目中使用的任何第三方库可能已经在使用这些权限。当您构建项目时,它将所有Manifest文件合并到一个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文件中添加上述权限行,就是这样。它将从Merged Manifest文件中删除Permission,您的问题将得到解决。

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:替换/删除使用这些权限的第三方库。

更新:

解决方案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删除所有受限制的许可。

希望它会有所帮助。

另一答案

该政策适用于所有APK,甚至适用于您的Alpha或Beta曲目。您需要删除任何不符合的APK。如果您找不到删除方法,只需将其替换为符合规定的较新版本,或者创建一个没有APK的新版本,并将该版本发布到Alpha或Beta曲目。

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

这些可能无法帮助原始提问者,但可能会帮助有不同问题的人通过谷歌搜索找到这个问题。

另一答案

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

最后我发现了Artifact Library中的旧版Active apk。它来自“内部测试轨道”。没有丢弃按钮。所以我不得不创建具有固定权限的新“内部测试轨道”apk和旧版本的上部版本。

后记“此应用不符合Google Play权限政策”错误消失。

另一答案

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

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

以下是在Play控制台中查看的方法:

  1. 转到版本管理>工件库
  2. 展开有效的APK和草稿APK
  3. 展开每个APK的必需权限

您可能还想查看Permissions政策并查看Use of SMS or Call Log permission groups帮助文章,该文章描述了预期用途,例外,无效用途和替代实施选项以获得其他指导。

另一答案

解决方案1:由于D_Alpha's answer在大多数情况下工作正常,只需更新以下权限:

<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" />

解决方案2:

但在某些情况下:在使用所有解决方案之后,我们遇到了相同的错误,所以现在我们可以通过检查某些字段来成功进行审核。它就像魅力一样。我们不能说它完美的解决方案,但它的工作原理。

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

release_with_permission

以上是关于为什么我收到警告 - 此应用不符合Google Play权限政策,即使我的最新版本不需要这些权限?的主要内容,如果未能解决你的问题,请参考以下文章

尝试将 apk 上传到 google play 控制台时,我收到错误和警告消息

Unity aab 不符合 Google Play 64 位要求

当我将我的应用程序上传到 Playstore 时收到此警告

为啥我在使用 Google Maps API 时没有收到“同源政策”警告?

如何构建符合 Google Play 64 位要求的应用程序?

当我的应用程序不使用这些权限时,仍然在 Google Play 控制台中收到那些 SMS 和 CALL LOG 警告?