安装应用程序被播放保护阻止

installation app blocked by play protect

当尝试安装已签名的应用程序 (app-release.apk) 时,会显示 "Blocked by Play Protect" 警告并且应用程序未安装。但是,未签名的应用程序 (app-debug.apk) 可以毫无问题地安装。

错误信息:

Play Protect doesn't recognise this app's developer. Apps from unknown developers can sometimes be unsafe.

为什么会出现这个错误?有什么解决办法?

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

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

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

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

Play Protect Appeals Submission Form

过几天,问题就会解决

Google play 通过您的密钥库.

找到您作为开发者

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

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

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

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

  1. 点击构建
  2. 点击生成签名 Bundle/APK...
  3. 选择 Bundle / APK(在我的例子中是 APK)并点击 Next
  4. 点击新建(确保您的机器上有密钥库路径)
  5. 完成所有操作后,单击“完成”以生成您签名的 apk

安装时不会出现警告。

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

您可以在此目录中找到 java 密钥工具 C:\Program Files\Java\jre7\bin

打开命令window并切换到该目录并输入这样的命令

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

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

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

不是解决方案,但您可以使用调试密钥签署 release 版本以避免阻止 Google Play Protect 的安装。 Play Protect 似乎不会对使用自动生成的 debug.keystore.

签名的构建发出警告

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

当然,您不能将该构建用于生产分发(Google Play、亚马逊等),但它仍然值得用于需要高频反馈循环的预生产内部测试。

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

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

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

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

可以通过三个选项来消除此警告:

  1. 您需要在 Play Store -> Play Protect -> 设置图标 -> Scan Device for security threats 中禁用 Play Protect
  2. 在 Google Play 商店
  3. 发布应用
  4. 提交 Appeal to the Play Protect.

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

Google 正在提供安全设备验证 api,您只需在您的应用程序中调用一次,之后您的应用程序将不会被播放保护阻止:

这里有链接:

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

Link 示例代码项目:

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

这是由于调试证书过期 只需删除位于

debug.keystore
C:\Users\.android\

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

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

我根据签名证书的详细信息更改了我的应用程序包名称,从而解决了这个问题。起初我用 com.foo.xyz 创建了应用程序 但我的证书组织是 'bar'。所以我将我的包名称更改为 com.bar.xyz,现在没有 google play protect 警告!

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

  • 点击无效Caches/Restart

  • 做Android工作室的登录过程

  • 点击生成签名包/APK

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

  • 不要使用相同的密码。确保您的密码与 “生成签名包” 不同的。最好输入美国地址01

  • 估计是对波斯语敏感,程序里最好不要写波斯语。程序菜单用英文写,下次更新改成波斯语

  • 删除额外权限

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

  • 正确填写名字和姓氏

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

  • 如果您使用的是 Dropbox,请务必将 zero 末尾的数字更改为 link 到 一个 ,然后提交或使用 link 缩短网站。

  • 如果您的请求未获批准,请缩短安装文件的link,因为 例如,使用 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
    
  • 如果您没有收到确认邮件,请过几天再重复请求

如果硬件发生变化,请尝试重新下载或重新创建 jks 文件。

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

在真实设备上安装我的应用程序进行调试后,我一直遇到这个问题。

问题是我在清单文件的主要 activity 上有 android:exported="true" 属性。我删除了它,Play Protect 警告消失了。