如何修复移除 play-services-safetynet 警告?

8

我试图将我的应用程序推向生产环境,但是一直收到“警告”/错误,这不允许我将应用程序部署到生产环境。

以下SDK版本已报告严重问题:

com.google.android.gms:play-services-safetynet:18.0.0

SDK开发人员告诉我们:SafetyNet Attestation API 将被停用,并由新的 Play Integrity API 替换。请尽快开始迁移,以避免用户受到影响。Play Integrity API 包括所有 SafetyNet Attestation 提供的完整信号和更多功能,例如 Google Play 许可证和更好的错误消息。了解更多信息并开始迁移,请访问https://developer.android.com/training/safetynet/deprecation-timeline

我尝试了 Stack Fix1Stackfix2 中的修复方法,但没有成功。

我正在使用:

dependencies:
  http: ^0.13.4
  json_annotation: ^4.1.0
  shared_preferences: ^2.0.15
  datetime_picker_formfield: ^2.0.0
  image_picker: ^0.8.4+2
  image_cropper: ^1.0.1
  path: any
  transparent_image: ^1.0.0
  clippy_flutter: ^1.1.0
  rxdart: ^0.26.0
  font_awesome_flutter: ^8.8.1
  bubble_bottom_bar: ^1.2.0
  flutter_rating: ^0.0.2
  sticky_headers: ^0.1.7
  google_maps_flutter: ^2.1.10
  geolocator: ^7.6.2
  google_maps_webservice: ^0.0.19
  geocoder: ^0.2.1
  source_gen: ^1.0.0
  flutter_counter: ^1.0.3
  share: ^0.6.4
  carousel_pro: ^1.0.0
  dropdown_menu: ^1.1.1
  flutter_flip_view: ^1.0.3
  permission_handler: ^8.1.6
  giffy_dialog: ^1.7.0
  autocomplete_textfield: ^1.6.4
  intl: ^0.17.0
  url_launcher: ^6.1.5
  js: ^0.6.0
  universal_html: ^1.2.3
  square_in_app_payments: ^1.7.4
  cached_network_image: ^3.2.1
  provider: 
  blinkid_flutter:
  flutter_mapbox_autocomplete:
  firebase_core: ^1.20.0 
  firebase_auth: ^3.6.2
  cloud_firestore: ^3.1.1
  edge_alert: ^0.0.1
  firebase_messaging: ^11.1.0 
  flutter_local_notifications: ^9.1.4
  badges: ^2.0.2
  platform: ^3.1.0
  flutter_cache_manager: ^3.3.0


  flutter:
    sdk: flutter
  flutter_auth_buttons: ^0.3.1





  cupertino_icons: ^0.1.2
  emojis: ^0.9.3
  firebase_app_check: ^0.0.6+18
  
dev_dependencies:
  flutter_test:
    sdk: flutter
  build_runner: ^1.0.0
  json_serializable: ^5.0.2 

我的 build.gradle 依赖项如下:

dependencies {

implementation 'androidx.appcompat:appcompat:1.0.2'   
testImplementation 'junit:junit:4.12'
implementation 'com.google.firebase:firebase-analytics:17.5.0'
implementation platform('com.google.firebase:firebase-bom:30.2.0')
    implementation 'com.google.firebase:firebase-core'
    implementation('com.google.firebase:firebase-auth') {
        exclude module: "play-services-safetynet"
    }
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
implementation 'com.google.firebase:firebase-messaging:20.1.0'
implementation 'com.google.android.play:integrity:1.0.1'

}

我正在使用classpath 'com.google.gms:google-services:4.3.13'

与Firebase集成: 我enter image description here

但每次我发布应用程序时,它都会停留在“审核中”,什么都不会发生。现在已经过去了两个星期,我不确定如何删除Play Services Safety Net错误/警告。

有什么想法可以解决safetynet错误吗?我很确定问题出在Firebase上,所以我添加了忽略依赖项。但是没有成功。


1
运行 gradle app:dependencies 命令并检查哪个库仍在使用 com.google.android.gms:play-services-safetynet:17.0.0,尝试更新此库。 - José Braz
我得到了这个错误:https://dev59.com/IlEG5IYBdhLWcg3wIksH?noredirect=1&lq=1 - Doing Things Occasionally
同样的问题,你找到任何解决方案了吗?应用程序已经审核了4天。 - Asbah Riyas
1个回答

8
请在文件android/app/build.gradle中排除play-service-safetynet
dependencies {
  //....
}
//add below script  
configurations.all { 
    exclude group: 'com.google.android.gms', module: 'play-services-safetynet'
}

点击这里查看解决与以下SDK版本相关的关键问题!


小心。您需要确认所有第三方库在运行时不会使用Safenet。只需在发布我的应用程序时添加这行代码,当用户使用我其中一个第三方库提供的功能时,应用程序就会崩溃。"由于subscribe()方法调用中缺少onError处理程序,导致异常未处理。进一步阅读:https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/safetynet/SafetyNet;" - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接