安装应用被Play保护阻止


116

尝试安装签名的应用程序(app-release.apk)时,显示“被Play保护阻止”警报,并且未安装该应用程序。但是,可以安装未签名的应用程序(app-debug.apk),不会出现问题。

错误信息:

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

为什么会发生此错误?有什么解决方案?

错误图片


2
我的应用程序也遇到了同样的问题。虽然我尝试发布应用程序时Google帐户已被暂停。我了解到google更新了具有暂停的程序包名称的播放保护清单,然后,如果您尝试安装相同的程序包名称,播放保护会开始发出假警告。我创建了一个新的应用,其中包含暂停的包名称,并且只有主要活动,没有添加其他代码。使用已暂停的apk密钥库签名并尝试安装。惊人地发挥保护作用,显示出有害的警报,如您的问题所示。我还尝试使用所有已暂停的应用程序类制作新的程序包,但没有播放提示。
Panache


对我来说,同样的问题,但是发现其他Keystore甚至没有将应用发布到Google Play中,没有正确签名应用,并且此对话框没有出现!即使您创建一个新的应用程序也有问题。我有多个应用程序,其他Keystore可以在我的新应用程序中正常工作!我不知道如何用Google确定未知的应用程序开发人员!我从来没有Google Play控制台帐户。
hamed hosiny

Answers:


60

我找到了解决方案:转到下面的链接并提交您的申请。

播放保护申诉提交表格

几天后,问题将得到解决


3
@MostafaAzadi的确切原因是什么?
Behnam Maboudi '18年

3
如果您没有使用SSL,而是在清单上启用了纯文本通信,那就是原因。
DaniloDeQueiroz

1
如果您在通过网址下载APK文件时遇到问题,可以采取以下措施:stackoverflow.com/a/56513945/9710197
Mostafa Azadi

@DaniloDeQueiroz您是否绝对确定问题是由于明文通信引起的?那么删除android:usesCleartextTraffic="true"应该可以解决问题了吗?谢谢。
AnthoPak

1
你好。我无法提交我的应用来呼吁Play保护。如何上传apk?我收到一封电子邮件,提示无法下载apk,尽管我通过GitHub提供了直接下载链接。
SayantanRC

40

我找到了更好的解决方案。如果您想解决这个问题,则应该打开Play商店,在菜单中找到Play Protect 这里这里 然后取消选中“ 扫描设备是否存在安全威胁”


78
这不是解决方案。当我们必须将应用程序分发给客户端或用户(没有playstore)时,我们不能使用它
silwar

1
谢谢,为侧面加载的应用程序提供了快速的一次性修复,对我来说非常有效。
君特Zöchbauer

1
@silwar我不认为没有游戏商店的设备上存在问题。因为拦截器是Play商店。
Jemshit Iskenderov '18

@JemshitIskenderov以我而言,这是密钥库损坏的问题。.我为我的应用程序(企业应用程序未在Playstore上发布)更改了它,并修复了问题
silwar

1
就我而言,问题在于未发布的应用使用了Google Game Services。
Sattar Hummatli

18

尝试创建一个新的密钥库并替换为旧的密钥库,然后重建一个新的签名APK。

更新:请注意,如果您使用与服务器的http连接,则应使用SSL。

看看:https : //developer.android.com/distribute/best-practices/develop/understand-play-policies


2
也许是因为大多数购买的证书的最大有效期都在去年左右。设置有效期大于50年。
Amirhosein Heydari

1
我本月创建了此应用,我设置了签名25年的有效期(年)
Mostafa Azadi

1
@MostafaAzadi,Amirhosein我在这里也有同样的问题。你有发现什么吗?
Behnam Maboudi '18年

17
是的,这似乎很荒谬。更糟糕的是,我只有在首次安装该应用程序时才看到此弹出窗口。即使我接受并安装它,在下一次安装时,它也会记录“安装被静默阻止”,并且在UI上收到“未安装应用程序”消息。那时,仅完全禁用Play Protect或从设置中清除Play商店数据会再次弹出我。发生这种情况的原因是,我们使用与Play商店中许多其他正常运行的应用程序相同的脚本生成了一个密钥。
zsmb13

8
Khosham miad faghat ma irani ha b hamchin moshkelayi bar mikhorim
MoHammaD ReZa DehGhani

12

Google Play通过您的密钥库找到您作为开发人员。

也许当您生成新的密钥库时,您的国家/地区IP已被Google禁止。

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

如果未成功,请在Android Studio中使用另一个Gmail并生成新的密钥库。


你有做这个东西吗?原因是我遇到了这个问题,我的申请已通过伊朗的身份验证,无法通过上诉发送申请(他们无法测试),那么我该如何解决?感谢花花公子
尼玛·哈比布科达

4
它对我没有用!我使用keytool创建密钥库
Amir Shabani

11

可以使用以下三种方法来消除此警告:

  1. 您需要在Play商店中禁用Play Protect-> Play Protect->设置图标->扫描设备以查看安全威胁
  2. 在Google Play商店中发布应用
  3. 提交上诉到播放保护

7

如果您不想将应用程序上载到Playstore上,那么我仍在为其他仍在寻找此问题的解决方案的人添加此答案,那么暂时可以解决此问题。

Google提供了安全设备验证api,您只需在应用程序中调用一次即可,之后该应用程序将不会受到Play保护的阻止:

这里有链接:

https://developer.android.com/training/safetynet/attestation#verify-attestation-response

示例代码项目的链接:

https://github.com/googlesamples/android-play-safetynet


1
@Ahmad当然了,我的所有同事都在使用此api解决我们迄今为止已将20多种不同的apk移交给客户的问题,并且效果很好
Patel先生

2

对我唯一有效的解决方案是使用java keytool并生成一个。keystore归档命令行,然后使用该.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


3
如果有反对意见,我想知道为什么。如果我做错了我想知道的事
easazade

2

如果您使用诸如google analytics或的某些跟踪器,amplitude并且试图在以外的其他平台上发布您的应用Google Play,则该错误会向用户显示。因此,有两种可能的解决方案:

  1. 在您的应用中使用特殊的跟踪器(firebase和appmetrica已经过测试,可以)
  2. 在以下位置发布您的应用 Google Play

0

解决方案在于在生成签名的apk时创建一个新密钥。这为我工作没有大惊小怪。

  1. 点击构建
  2. 点击生成已签名的Bundle / APK ...
  3. 选择Bundle / APK(在我的情况下为APK),然后单击“下一步”
  4. 单击创建新的(确保您在计算机上具有密钥库路径)
  5. 完成所有操作后,单击“完成”以生成您的签名apk

安装时,不会出现警告。


0

这是由于调试证书过期而已,只需删除debug.keystore位于

C:\Users\.android\

在构建项目之后,构建工具将重新生成新密钥,并且可以正常工作。这里是参考:

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

-1

不是解决方案,但是您可以使用调试密钥来签署发行版本,以避免阻止Google Play Protect进行安装。看来Play Protect不会警告使用自动生成功能签名的版本debug.keystore

请注意,您的调试版本不是未签名的,它们只是使用调试密钥签名的。

当然,您不能使用内部版本进行生产发行(Google Play,Amazon等),但是对于需要高频反馈回路的生产前内部测试还是值得的。

您可以通过在中添加配置来添加一个任务以使用debug.keystore构建发行版build.gradle,例如:

android {
  buildTypes {
    // add after the `release` definition
    releaseDebugKey { initWith release }
  }

  signingConfigs {
    // use debug.keystore for releaseDebugKey builds
    releaseDebugKey { initWith debug }
  }
}

然后执行./gradlew assembleReleaseDebugKey以使用调试键构建发布版本。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.