应用安装被Play Protect阻止

157
当尝试安装已签名的应用程序(app-release.apk)时,会显示“Play Protect阻止了此应用”的警报,并且该应用程序无法安装。但是,未签名的应用程序(app-debug.apk)可以无问题地安装。
错误信息:

Play Protect不认识此应用程序的开发者。来自未知开发者的应用程序有时可能不安全。

为什么会出现这个错误?解决方案是什么?

image of Error


4
我也曾遇到这样的问题。当我试图发布我的应用程序时,我的Google帐户被暂停了。我意识到Google更新了Play Protect检查清单,其中包含已被暂停的包名,如果您尝试安装相同的包名,则Play Protect会开始发出虚假警告。我创建了一个只有主要活动而没有其他代码的使用已被暂停的包名的新应用程序。我使用已被暂停的apk签名密钥库进行签名并尝试安装。令人惊讶的是,Play Protect显示了有害警报,正如您所提出的问题一样。我还尝试制作了一个包含所有已被暂停的应用程序类的新包,但Play没有发出任何警报。 - Panache
请在此处查看解决方案:https://dev59.com/M63la4cB1Zd3GeqPPqHP#54976730 - Manohar Reddy Poreddy
我也遇到了同样的问题,但是我找到了另一个Keystore,即使没有将应用程序发布到Google Play,也可以正确签署应用程序,并且此对话框不会出现!即使您创建一个新应用程序,该问题也会立即出现。我有多个应用程序,其他Keystore与我的新应用程序一起正常工作!我不知道Google如何决定未知的应用程序开发人员!我从未拥有过Google Play控制台帐户。 - Hamed Hosseini
你找到问题的根本原因了吗? - ThinkAndCode
16个回答

89

3
什么是确切的原因? - Behnam Maboudi
4
如果您没有使用SSL,并在清单中启用了明文通信,那就是原因。 - DaniloDeQueiroz
1
如果您在下载APK文件的URL上遇到问题,这个链接可能会有所帮助:https://dev59.com/I6_la4cB1Zd3GeqPmQEQ#56513945 - Mostafa Azadi
2
你好。我无法提交我的应用程序以申诉Play保护。如何上传apk?尽管我通过GitHub提供直接下载链接,但我收到一封电子邮件说无法下载apk。 - SayantanRC
1
链接现在已经损坏。 - Saeed Arianmanesh
显示剩余4条评论

31

有三种方法可以消除这个警告:

  1. 您需要在Play Store -> Play Protect -> 设置图标 -> 扫描设备以检测安全威胁中禁用Play Protect
  2. 在Google Play Store上发布应用程序
  3. 向Play Protect提出 申诉

27

2
可能是因为大多数购买的证书的最大有效期在去年左右。将过期日期设置为50年以上。 - Amirhosein
1
我这个月创建了这个应用程序,并将签名有效期(年)设置为25年。 - Mostafa Azadi
1
这个问题也出现在我们的应用上了,目前还没有解决办法,除了在Play商店中关闭Google Play Protect - 但这并不是所有Beta用户的解决方案。 - zsmb13
20
是的,这听起来很荒谬。更糟糕的是,我只在第一次安装应用程序时才会收到此弹出窗口。即使我接受并安装它,在下一次安装时,它会记录“已静默阻止安装”,并在UI上显示“未安装应用程序”消息。此时,只有完全禁用Play Protect或从设置中清除Play Store数据才能再次弹出该窗口。这发生在我们使用与我们其他数十个在Play商店中正常运行的应用程序相同脚本生成的密钥中。 - zsmb13
2
@Amirhosein,感谢您的回答。我的应用程序甚至还没有发布到Play商店,因此不可能违反Play商店政策。我只在一个签名密钥上遇到了这个问题(该密钥尚未发布),而zsmb13则在其发布的应用程序中遇到了这个问题。另外,请描述一下非SSL通信如何在第一次运行应用程序之前触发Play Protect。 - Behnam Maboudi
显示剩余5条评论

15

通过你的密钥库,Google Play可以找到你作为开发者。

当你生成新的密钥库时,可能会因你所在的国家IP被谷歌封禁而发生问题。

更改你的IP地址并生成新的密钥库,问题将得到解决。

如果你没有成功,可以在Android Studio中使用另一个Gmail帐号并生成新的密钥库。


1
你做了这个吗?因为我有这个问题,我的应用程序需要从伊朗进行身份验证,无法通过申诉发送应用程序(他们无法测试它),那么我该怎么解决呢?谢谢啊,伙计。 - Nima habibkhoda
4
无效!我使用keytool创建密钥库。 - Amir Shabani
1
这并不是解决方案,因为新的密钥库也会在一段时间后被禁止。最好的方法是在Google保护网站上提交申诉以发布应用程序。 - Meisan Saba

14

1
@Ahmad 当然可以,我所有的同事都在使用这个API来解决问题,我们已经向客户交付了20多个不同的APK,一切都运行得非常完美。 - Mr. Patel
我现在感到非常困惑。我已经按照上面的链接进行了操作,也在认证后收到了成功的响应,但是 Play Protect 阻止似乎并没有消失。我可能做错了什么吗?你确定这个解决方法现在还有效吗? - Sadda Hussain
@SaddaHussain 它仍然有效,你一定做错了什么,请确保你没有使用不同的包调用API,然后稍后更改你的应用签名。这个API只需要从你的主Activity中调用一次,之后你的应用将不再被阻止。 - Mr. Patel
感谢您的回复,Patel。这是我正在做的事情。我已经启用了设备验证API。包名和应用程序ID相同。我在主活动中调用API。制作了一个签名的APK并安装了该应用程序,但仍然收到Play Protect警告。安装后,我在主活动中获得了成功的结果。我卸载应用程序并重新安装相同的APK,仍然收到Play Protect警告。我错在哪里? - Sadda Hussain

5

我唯一可用的解决方案是使用Java Keytool在命令行上生成一个 .keystore 文件,然后使用该文件对我的应用程序进行签名。

您可以在此目录中找到Java Keytool: C:\Program Files\Java\jre7\bin

打开命令窗口并切换到该目录,输入以下命令:

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Keytool会提示您为密钥库、您的姓名、公司等提供密码。请注意,在最后一个提示中,您需要输入yes。

然后,它将在您所在的目录中生成名为my-release-key.keystore的文件作为密钥库。密钥库和密钥受到您输入的密码的保护。密钥库包含一个单一密钥,有效期为10000天。别名是您稍后用来签署应用程序时引用此密钥库的名称。

有关Keytool的更多信息,请参阅文档:http://docs.oracle.com/javase/6/docs/technotes/tools/windows/keytool.html

有关签署Android应用程序的更多信息,请访问此处:http://developer.android.com/tools/publishing/app-signing.html


7
如果有人给我点了“踩”的话,我想知道为什么。如果我做错了什么,我也想知道。 - alireza easazade
不幸的是,它没有解决我的问题,我猜可能有几种用例会导致相同的问题。 - Amaury Liet

3

如果您正在使用像Google AnalyticsAmplitude这样的跟踪器,并且您尝试在除Google Play之外的其他平台上发布应用程序,则用户会遇到此错误。因此,有两种可能的解决方案:

  1. 在您的应用程序中使用特殊的跟踪器(Firebase和AppMetrica已经过测试并且可以使用)。
  2. 将您的应用程序发布在Google Play上。

2

这是由于调试证书过期导致的问题,只需删除位于debug.keystore位置的文件即可。

C:\Users\.android\

在此之后构建您的项目,构建工具将重新生成一个新的密钥,然后它将正常工作。 以下是参考资料:

https://developer.android.com/studio/publish/app-signing

1

没有非常精确的方法来解决这个问题,但以下任务可以有效地解决问题。

  • Click Invalid Caches/Restart

  • Do the login process of Android Studio

  • Click generate signed Bundle / APK

  • Fill in all the "generate signed Bundle" information completely.

  • Do not use the same password. Make sure your passwords are different in "generate signed Bundle" different. Preferably enter the address of America with the code 01

  • It is probably sensitive to Persian, so it is better not to write in Persian in the program. Write the program menu in English and make it Persian in the next updates

  • Remove extra permissions

  • Finally, go to the site below and request a troubleshooting https://support.google.com/googleplay/android-developer/answer/2992033?hl=en

  • Fill in the first and last name correctly

  • Upload the installation file, for example, in Dropbox, and copy the link

  • If you are using Dropbox, be sure to change the number zero at the end of the link to one, then submit it or use link shortening sites.

  • If your request is not approved, shorten the link of the installation file, for example, using the https://bit.ly site

  • In the description section, explain the problem. For your convenience, I will leave a sample text for you :

     Greetings to the esteemed Google Team
    
     I am sending this request to fix the "Blocked by Pay Protect" error
    
     ****{Write your app info and your reasons}****
    
     Fast, simple, free and lightweight, no annoying ads ,This app does not collect and store user data! 
     Also, no unnecessary cost is imposed on the user and is completely free , It 
     also certifies that this app does not harm user privacy and is not harmful to users
    
     Thank you
    
  • If you did not receive the confirmation email, repeat the request again a few days later


1

我通过根据签名证书详细信息更改应用程序包名称来解决了这个问题。起初,我使用的是com.foo.xyz创建的应用程序,但我的证书组织是'bar'。因此,我将包名称更改为com.bar.xyz,现在没有谷歌播放保护警告了!


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