如何更改 flutter 应用程序中的 SafetyNet 版本?

ahm*_*mad 5 android google-play-services flutter safetynet safetynet-api

由于此警告, Google 不会为我的应用程序发布任何更新版本:

play-services-safetynet (com.google.android.gms:play-services-safetynet) 的开发人员报告了版本 17.0.0 的严重问题。在发布新版本之前考虑升级。

SDK 开发人员告诉我们的是:SafetyNet Attestation API 即将停用,并由新的 Play Integrity API 取代。尽快开始迁移以避免用户中断。Play Integrity API 包括 SafetyNet Attestation 提供的所有完整性信号以及更多内容,例如 Google Play 许可和更好的错误消息传递。了解更多信息并开始迁移,请访问 https://developer.android.com/training/safetynet/deprecation-timeline

我在 android>build.gradle 中将 google services 的版本更改为 4.3.13

buildscript {
    ext.kotlin_version = '1.7.10'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.13'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
        mavenLocal()

    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
Run Code Online (Sandbox Code Playgroud)

并更新了所有依赖项,这是我的pubspec.yaml

environment:
  sdk: ">=2.5.2 <3.0.0"

dependencies:
  flutter:
    sdk: flutter

  cupertino_icons: ^1.0.5
  sqflite: ^2.0.3+1
  sqflite_sqlcipher: ^2.1.1
  hive: ^2.2.3
  hive_flutter: ^1.1.0
  http: ^0.13.5
  url_launcher: ^6.1.5
  photo_view: ^0.14.0
  cached_network_image: ^3.2.1
  facebook_app_events: ^0.17.0
  flutter_signin_button: ^2.0.0
  flutter_login_facebook: ^1.6.0
  firebase_core: ^1.20.1
  google_sign_in: ^5.4.1
  firebase_auth: ^3.6.3
  carousel_slider: ^4.1.1
  crypto: ^3.0.2
  uuid: ^3.0.6
  provider: ^6.0.3
  path_provider: ^2.0.11
  connectivity_plus: ^2.3.6+1
  device_info_plus: ^4.1.2
  purchases_flutter: ^4.1.2

  path: ^1.8.1


dev_dependencies:
  flutter_test:
    sdk: flutter
  hive_generator: ^1.1.3
  build_runner: ^2.2.0
Run Code Online (Sandbox Code Playgroud)

我的应用程序> build.gradle依赖项:

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test:runner:1.4.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    implementation 'androidx.multidex:multidex:2.0.1'
}
apply plugin: 'com.google.gms.google-services'
Run Code Online (Sandbox Code Playgroud)

那么现在该怎么办呢?我无法停止使用 firebase auth 或 google 登录。

SLe*_*deR 1

您在虚拟 Android 设备中运行 auth 函数时是否也遇到此错误?

E/zzbf ( 6464): SafetyNet Attestation fails basic integrity.

我昨天开始遇到这个问题,并检查了人们遇到的所有类似问题,但不幸的是没有人为我完成这项工作,但我建议尝试一下Play Integrity API,因为 Google 在其文档中表示 Play Integrity 将取代 Safetynet

  1. 通过 Google Cloud Console 启用 Google Play Ingegrity API;https://console.cloud.google.com/apis/library/playintegrity.googleapis.com?project= [您的项目名称]
  2. 如果您的应用程序已在 Google Play 上发布,请转至 Play Console,导航至左侧菜单的“发布”部分。转至设置 > 应用程序完整性。选择完整性 API。
  3. 在应用程序级别的build.gradle中添加以下关于依赖项的行;implementation 'com.google.firebase:firebase-appcheck-playintegrity'

如果有其他步骤/要求,请纠正我,我遵循了此文档