143

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

错误信息:

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

为什么会发生这个错误?解决方案是什么?

错误的图像

4

13 回答 13

78

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

Play Protect 上诉提交表

过几天问题就解决了

于 2018-07-08T14:54:02.437 回答
25

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

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

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

于 2018-06-29T18:24:44.063 回答
24

有三个选项可以消除此警告:

  1. 您需要在 Play Store -> Play Protect -> 设置图标 -> 扫描设备中禁用 Play Protect 以发现安全威胁
  2. 在 Google Play 商店发布应用
  3. 向 Play Protect提交上诉
于 2019-04-18T10:54:05.993 回答
16

Google play 通过您的密钥库找到您作为开发者。

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

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

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

于 2018-07-11T12:24:10.413 回答
11

如果您不想在 Playstore 上上传您的应用程序,我正在为仍在寻求解决此问题的其他人添加此答案,然后暂时有解决此问题的方法。

Google 提供了安全设备验证 API,您只需在应用程序中调用一次,之后您的应用程序将不会被 Play Protect 阻止:

这里有链接:

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

示例代码项目链接:

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

于 2019-06-12T05:03:48.343 回答
4

唯一对我有用的解决方案是使用 java keytool 并生成 . keystore归档命令行,然后使用该.keystore文件签署我的应用程序

您可以在此目录中找到 java keytoolC:\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

于 2019-01-27T17:20:37.470 回答
3

如果您正在使用一些跟踪器,例如google analyticsoramplitude并且您试图在除 之外的其他平台上发布您的应用程序,Google Play则会向用户显示此错误。所以有两种可能的解决方案:

  1. 在您的应用中使用特殊的跟踪器(firebase 和 appmetrica 已经过测试并且可以)
  2. 发布您的应用程序Google Play
于 2019-02-04T11:06:49.417 回答
1

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

  • 单击无效缓存/重新启动

  • 做Android Studio的登录流程

  • 点击生成签名的Bundle / APK

  • 完整填写所有“生成签名包”信息。

  • 不要使用相同的密码。确保您的密码在“生成签名的捆绑包”中有所不同。最好使用代码 01 输入美国地址

  • 可能对波斯语比较敏感,所以程序中最好不要用波斯语写。用英语编写程序菜单,并在下次更新中使其成为波斯语

  • 移除额外权限

  • 最后,访问以下站点并请求故障排除 https://support.google.com/googleplay/android-developer/answer/2992033?hl=en

  • 正确填写名字和姓氏

  • 上传安装文件,例如在 Dropbox 中,然后复制链接

  • 如果您使用的是 Dropbox,请务必将链接末尾的数字0更改为1,然后提交或使用链接缩短网站。

  • 如果您的请求未获批准,请缩短安装文件的链接,例如使用https://bit.ly站点

  • 在描述部分,解释问题。为了您的方便,我将为您留下一个示例文本:

     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
    
  • 如果您没有收到确认电子邮件,请在几天后再次重复请求

于 2021-09-12T07:49:50.153 回答
1

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

C:\Users\.android\

在构建您的项目之后,构建工具将重新生成一个新密钥,它会正常工作。这是一个参考:

https://developer.android.com/studio/publish/app-signing
于 2020-02-15T15:23:52.160 回答
1

解决方案在于在生成签名的 apk 时创建一个新密钥。这对我来说毫不费力。

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

安装时,警告不会出现。

于 2018-12-29T11:28:58.143 回答
1

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

于 2021-02-12T18:25:27.757 回答
0

如果有硬件更改,请尝试重新下载或重新创建 jks 文件。

我也遇到过这样的问题,它是在将我的 SSD 从一台 PC 移动到另一台 PC 之后发生的。这暗示了无需将应用程序发送给 Google 进行验证:一个旧的 apk 文件正在安装而没有任何警告。所以我用云端的那个替换了我硬盘上的 android.jks,创建了一个签名的 apk,问题就消失了。

于 2021-11-23T13:31:50.740 回答
-1

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

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

当然,您不能将构建用于生产分发(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以使用调试密钥构建发布版本。

于 2019-04-11T04:33:50.907 回答