如何在Flutter应用中升级SafetyNet版本以解决Google发布警告?
解决方案
1. 定位问题依赖来源
先确认是哪个间接依赖引入了有问题的play-services-safetynet:17.0.0:
- 在项目根目录执行命令:
./gradlew app:dependencies - 或者打开Android Studio,通过File > Project Structure > Dependencies搜索
safetynet,查看完整引用链。
2. 强制升级SafetyNet版本(临时解决发布拦截)
在app/build.gradle的dependencies块中添加强制依赖,直接覆盖到无问题的版本:
dependencies { // 保留原有依赖 implementation('com.google.android.gms:play-services-safetynet:18.0.0') { force = true } }
3. 迁移到Play Integrity API(长期适配方案)
3.1 升级Firebase与Google登录依赖
你的firebase_core、firebase_auth和google_sign_in版本偏旧,新版本已适配Play Integrity替代SafetyNet:
修改pubspec.yaml中的依赖版本:
firebase_core: ^2.15.0 firebase_auth: ^4.10.0 google_sign_in: ^6.1.5
执行命令更新依赖:
flutter pub upgrade
3.2 替换SafetyNet相关代码(若有直接调用)
如果你的业务代码中直接使用了SafetyNet Attestation API,需要替换为Play Integrity的验证逻辑:
- 删除原有SafetyNet调用代码
- 在Google Cloud控制台启用Play Integrity API,添加对应依赖后,实现设备完整性验证逻辑
4. 清理并重新构建项目
执行以下命令确保依赖更新生效:
flutter clean flutter pub get flutter build appbundle # 或根据需求执行 flutter build apk
内容的提问来源于stack exchange,提问作者ahmad
相关产品推荐
相关产品推荐

