谷歌应用商店开发者政策违规警告:需要采取行动。

36
我最近收到了来自 Google 的多封邮件,针对我的多个应用程序。
邮件内容如下:
尊敬的 Google Play 开发者,
我们的记录显示,您的应用程序 XXXX,包名为 com.XXXX.XXXXXXXXXX,目前违反了我们关于个人和敏感信息的用户数据政策。
问题:Google Play 要求开发者在应用程序请求或处理敏感用户或设备信息时提供有效的隐私政策。您的应用程序请求敏感权限(例如相机、麦克风、帐户、联系人或电话)或用户数据,但未包含有效的隐私政策。
要求:在您的应用程序 Store 列表页面和应用内包含指向有效隐私政策的链接。您可以在我们的帮助中心找到更多信息。
或者,您可以通过删除任何请求敏感权限或用户数据来选择退出此要求。
如果您的产品目录中还有其他应用程序,请确保它们符合我们的突出披露要求。
请在2017年3月15日之前解决此问题,否则将采取行政措施限制您的应用程序的可见性,甚至可能会从 Play 商店中删除。感谢您帮助我们为 Google Play 用户提供清晰透明的体验。
此致
敬礼,
Google Play 团队
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />

2-)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<!--
  IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
  to match your app's package name + ".permission.C2D_MESSAGE".
-->
<permission android:protectionLevel="signature"
    android:name="com.XXXX.XXXXX.permission.C2D_MESSAGE" />
<uses-permission android:name="com.XXXX.XXXXXX.permission.C2D_MESSAGE" />

3-)

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-feature android:name="android.hardware.camera" />

4-)

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />

<uses-permission android:name="com.xxxx.xxxxx.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

5-)

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.android.vending.BILLING" />

<permission
    android:name="com.xxx.xxxx.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="com.xxxx.xxxx.permission.C2D_MESSAGE" />

这些是我正在使用的库。

compile 'com.google.android.gms:play-services-ads:10.0.1'
compile 'com.android.support:support-v4:25.1.1'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1'
compile 'com.melnykov:floatingactionbutton:1.3.0'
compile 'com.android.support:appcompat-v7:25.1.1'
compile 'com.baoyz.swipemenulistview:library:1.2.1'
compile 'com.google.android.gms:play-services-analytics:10.0.1'
compile 'com.flaviofaria:kenburnsview:1.0.7'
compile 'com.commit451:PhotoView:1.2.4'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
compile 'com.code-troopers.betterpickers:library:2.2.2'
compile 'com.android.support:cardview-v7:25.1.1'
compile 'com.onesignal:OneSignal:3.3.1@aar'
compile 'com.google.android.gms:play-services-gcm:10.0.1'
compile 'com.google.android.gms:play-services-location:10.0.1'
compile 'com.android.support:design:25.1.1'
compile 'me.leolin:ShortcutBadger:1.1.10@aar'
// retrofit
compile('com.squareup.retrofit2:retrofit:2.1.0') {
    exclude module: 'okhttp'
}
compile 'com.squareup.okhttp3:okhttp:3.0.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.0.1'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'io.reactivex:rxandroid:1.1.0'
// UI binding
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
// DB
compile 'org.greenrobot:greendao:3.0.1'
compile 'com.github.paolorotolo:appintro:4.1.0'
compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+'

哪些权限违反了Google用户数据的规定? 有哪些权限违反了Google用户数据的规定?是否有一个列出这些权限的清单? 如何解决?我应该删除它们吗,还是还有其他解决方案? 如果我需要准备隐私政策,是否有一些示例可以参考?
谢谢。

2
http://meta.stackoverflow.com/questions/272165/are-developer-centric-questions-about-application-stores-on-topic - CommonsWare
如果Google Play商店需要隐私政策,开发者控制台通常会告诉您是哪些权限导致了这个要求。(这是我的经验。) - Charles Caldwell
我为我的4个应用收到了同样的电子邮件,实际上我并不需要提到的权限。@CharlesCaldwell - MBH
你还应该注意到,第三方依赖可能也需要它们自己的权限。考虑到你使用了多少库,如果其中一个是罪魁祸首,我并不会感到惊讶。尝试 这个答案 来找出可能导致问题的库。(我没有测试过答案,所以不做任何承诺。) - Charles Caldwell
请查看此链接:https://dev59.com/cOk5XIcBkEYKwwoY_O-N#42751979 - 0xAliHn
请查看此链接:https://dev59.com/XLvoa4cB1Zd3GeqP2l8R - surya
8个回答

53

有一些方法可以克服此政策违规。首先,您需要创建政策违规文件。以下是一些方法:

  1. 访问这个链接:https://app-privacy-policy-generator.firebaseapp.com/

然后提供您的应用程序名称、开发者账户名称等信息,生成您的政策文件。

  1. 或者您可以使用这个模板: https://gist.github.com/alphamu/c42f6c3fce530ca5e804e672fed70d78

    然后用您自己的应用程序名称、开发者账户等替换即可。

现在如何链接您的隐私文件:

如果您有自己的服务器,则可以将文件托管在您的服务器上并使用该链接。如果没有,则还有其他方式完成您的工作。

  1. 您可以将文件放在git中,然后使用该链接。
  2. 您也可以采取更好的方式,例如在您的Google驱动器中创建一个文档文件,然后将您的策略文本粘贴在该文件中,然后选择文件->发布到网络,您将获得一个链接以供分享,只需在策略url中使用该链接即可。

希望这些对您有所帮助。


另一个免费的隐私政策来源:https://www.docracy.com/mobileprivacy - juanitogan
谷歌Play因上传用户联系信息而拒绝了应用程序。 - surya

13

您需要添加隐私政策。要将隐私政策添加到您的商店列表中:

  1. 进入您的Google Play开发者控制台。
  2. 选择一个应用程序。
  3. 选择商店列表。
  4. 在“隐私政策”下,输入您托管隐私政策的在线URL。
  5. 选择保存草稿(新应用程序)或提交更新(现有应用程序)。

5

READ_CONTACTS是一项敏感权限,谷歌要求您必须拥有隐私政策。

其他敏感权限包括相机、音频录制和联系人。

您可以通过删除那些要求个人数据的敏感权限或向您的Android应用程序添加隐私政策URL来解决违规问题:

  1. 登录您的Google Play开发者控制台。
  2. 选择所有应用程序
  3. 选择应用程序
  4. 单击商店列表
  5. 隐私政策字段中输入您的隐私政策的公共URL:

Privacy Policy field on Google App Dashboard

请注意,您需要在自己的网站上托管隐私政策并在“隐私政策”字段中提供URL。谷歌不会为您托管协议。

您可以使用GitHub Pages等其他托管政策的替代方案。


那么我必须创建和托管自己的网站,并支付每月费用,只是因为我想在我的应用程序中使用相机? - Marian Klühspies
您也可以使用免费的替代方案来托管隐私政策,例如GitHub Pages、Medium页面、我们的TermsFeed工具来创建和托管等。 - TermsFeed

5
在我的情况下,旧版应用程序(部署在BETA轨道上)出现了问题,控制台为此发出了警报。 因此,请检查所有轨道(Beta、Alpha、Internal和Production)中的所有活动应用程序是否存在受限权限组。

1
这非常重要,当我们遇到“声明敏感权限”的问题时。当我们在'BETA track'中有旧的apk,而在发布track中有新的干净apk时,仍然会显示此问题。我们需要先将APK上传到Beta track-->推出Beta track-->Beta Apk“发布到生产”-->从发布track中推出相同的内容。 - SHS
我试图上传到Alpha轨道,但没有成功。我的生产轨道上的应用因“未遵守Google Play开发者计划政策”而被删除。现在我在Alpha轨道发布时也遇到了同样的错误和解释。这可能是因为生产轨道中旧版apk的原因吗? - Rondev

4

您的apk中,隐私政策URL字段旁边有一个黄色评论,这是导致权限问题的原因。

然而,根据您应用程序的清单文件的首次审查结果,READ_PHONE_STATE和GET_ACCOUNTS显然是需要有政策URL的权限。


他的所有应用程序中都没有它。我也是,我收到了相同的电子邮件,但在应用程序或使用的库中都没有这些内容。 - MBH

3
我向他们询问了解决方案,今天他们给我发送了这封电子邮件:
“我很高兴能够澄清您对隐私政策警告的任何疑问。有三种方法可以解决此问题:
1. 如果您的应用程序请求用户数据或进行敏感权限请求(例如电话、帐户、联系人、相机或麦克风),则需要在两个位置添加有效的隐私政策:您的应用程序的商店列表页面(以下是说明)和您的应用程序内部。
2. 作为第二个选项,您可以删除任何请求用户数据或敏感权限的请求。例如,您需要从清单中删除可能敏感的权限。如果您删除这些请求,则无需添加隐私政策。
3. 如果您无法完成步骤1或2,则需要从Play商店取消发布应用程序。如果您的应用程序已经下架,则无需采取任何措施,除非您将来重新发布该应用程序。”
无论如何,在我的应用程序中,我没有请求所提到的权限(相机、联系人、麦克风等)。
我在其中使用了google Admob。我认为它可能会导致这些权限的请求!我还注意到你在gradle中使用了谷歌播放服务广告(Admob)。
compile 'com.google.android.gms:play-services-ads:10.0.1'

可能的解决方案:有一种方法可以在gradle中去除权限:

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

这不是最好的解决方案,我们可能还要等待更好的解决方案,但这是我目前得到的...


如何在我的应用程序中添加隐私政策? - Mohamad Mahmoud Darwish
2
我明白了,通过在存储列表上添加隐私政策链接,您将能够在应用程序页面上看到隐私链接。 - Mohamad Mahmoud Darwish

0

请确认 Naitik Soni 的回复。在生产环境中,我们拥有“READ_SMS”权限,因此我们只能在没有该权限的情况下发布新版本到生产环境。


0

这个违规错误是由于权限引起的

<uses-permission android:name="android.permission.READ_CONTACTS" />

你应该阅读有关谷歌开发者政策的相关内容。 如果此权限不是必需的,您可以将其删除,然后就不会再收到此错误信息了。 否则,您需要在Google Play开发者控制台中为您的应用程序提供政策URL,并且您还必须在应用程序中提供相同的URL。

对于我而言,您的应用程序具有版本代码5的apk,请求以下权限:android.permission.READ_PHONE_STATE,android.permission.GET_ACCOUNTS。在APK中使用这些权限的应用程序需要设置隐私政策。您可以在Google Play开发人员控制台中查看它们>您的应用程序>商店列表。 - jakob.j
是的,正确的。这个违规错误是因为敏感信息的问题,我提到了导致我遇到问题的原因,并且我在上面的问题中也看到了同样的情况。 - B.shruti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接