如何修复Flutter中com.google.android.gms:play-services-safetynet相关错误?
修复Flutter中Google Play商店相关错误(SafetyNet迁移方案)
背景说明
com.google.android.gms:play-services-safetynet:17.0.0 依赖的SafetyNet Attestation API已停止服务,需迁移至Play Integrity API。该API包含SafetyNet所有完整性验证能力,还新增Google Play授权验证、更清晰的错误提示等功能。
具体修复步骤
替换Android依赖
在Flutter项目的android/app/build.gradle文件中,移除原有的SafetyNet依赖:implementation 'com.google.android.gms:play-services-safetynet:17.0.0'替换为Play Integrity API依赖(建议使用最新稳定版本):
implementation 'com.google.android.gms:play-services-integrity:17.0.0'更新Flutter端代码逻辑
- 移除所有调用SafetyNet Attestation的代码(如
SafetyNet.getClient().attest()相关逻辑)。 - 集成Play Integrity API的调用流程:
- 创建
IntegrityManager实例,调用requestIntegrityToken获取验证令牌。 - 将令牌发送至你的后端服务,完成完整性校验。
- 创建
- 移除所有调用SafetyNet Attestation的代码(如
配置项目权限与API
- 在Google Cloud控制台启用Play Integrity API,并确保应用关联的API密钥具备对应权限。
- 确认AndroidManifest.xml中已添加
INTERNET权限(API调用需联网):<uses-permission android:name="android.permission.INTERNET" />
测试验证
在搭载Google Play服务的真机上测试应用,确保令牌请求、后端验证流程正常,同时检查Google Play商店内的应用状态,确认无相关错误提示。
内容的提问来源于stack exchange,提问作者Ali K
相关产品推荐
相关产品推荐

