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

问题描述 投票:15回答:5

它显示了这条消息

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

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

android google-play android-permissions google-play-console
5个回答
17
投票

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

说明:您收到此警告是因为您以某种方式直接或间接使用了一些不符合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删除所有受限制的许可。

希望它会有所帮助。


3
投票

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

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

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


3
投票

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

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

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


1
投票

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

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

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

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

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


0
投票

解决方案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

© www.soinside.com 2019 - 2024. All rights reserved.