Android - Google Play 完整性 API 返回空设备完整性

问题描述 投票:0回答:2

我已经根据Android Developer中的文档将Google Play Integrity API集成到我们开发的SDK中。当消费应用程序在 GooglePlay 商店中注册并链接到 Google Cloud 项目时,一切正常。但是,当 SDK 在未通过 GooglePlay 商店分发的应用程序中使用时,完全相同的流程会返回空的完整性判决(已签名和加密,我成功验证并解密了它)。 在文档中它说:

无标签(空白值) 应用程序运行在有攻击迹象(例如 API 挂钩)或系统受损(例如被 root)的设备上,或者应用程序未在物理设备上运行(例如未通过 Google Play 完整性测试的模拟器)检查)。

现在我在原始 Pixel 设备上运行此程序,如果应用程序通过 PlayStore 分发,则可以满足很强的完整性。我与文档的不同之处在于,我的应用程序不是通过 PlayStore 分发的,并且有一个使用 PlayIntegrity 的 SDK。 这可以让这个配置工作吗?

android kotlin google-play-integrity-api
2个回答
0
投票

我找到了一个解释。首先,在 GooglePlay 之外分发的所有应用程序确实会在 SDK 中获得 Integrity 响应。 我的问题是我的设备已注册 Beta,并且有一个更新正在等待安装,因此 Play Integrity 不批准我的设备,因此响应为空。 将设备更新到最新的 Beta 版解决了该问题。


0
投票

“但是当 SDK 在未通过 GooglePlay 商店分发的应用程序中使用时”

对于未从 GooglePlay 商店下载的应用程序,我们也遇到了类似的问题。我们创建了一个封闭的测试轨道,并将我们的应用程序的一个版本添加到该轨道。然后,我们能够将测试人员注册到此轨道,他们能够从 GooglePlay 商店下载应用程序,并且应用程序完整性检查按预期工作。

一旦您的应用程序版本存在于测试轨道上,如果您使用相同的包名称、内部版本号和版本号等构建测试应用程序,您应该能够使用这些应用程序测试应用程序的完整性。由于值匹配,应用程序完整性似乎将它们视为与测试轨道上的应用程序相同。

© www.soinside.com 2019 - 2024. All rights reserved.