firebase / flutterfire

🔥 A collection of Firebase plugins for Flutter apps.
https://firebase.google.com/docs/flutter/setup
BSD 3-Clause "New" or "Revised" License
8.68k stars 3.97k forks source link

flutter_auth: Firebase app check uses com.google.android.gms.safetynet.safetyNet #13462

Closed kitterive closed 2 weeks ago

kitterive commented 2 weeks ago

Is there an existing issue for this?

Which plugins are affected?

App Check, Auth

Which platforms are affected?

Android

Description

when I upload my app to play console , I got the message 👍 您的最新正式版 4 (1.0.4) 中存在 SDK 问题 Lucida Lucida 2024年10月3日 18:20 com.google.android.gms:play-services-safetynet:18.0.0 com.google.android.gms:play-services-safetynet 已为 SDK 版本 18.0.0 添加此备注:

The SafetyNet Attestation API is being discontinued and replaced by the new Play Integrity API. Begin migration as soon as possible to avoid user disruption. The Play Integrity API includes all the integrity signals that SafetyNet Attestation offers and more, like Google Play licensing and better error messaging. Learn more and start migrating at https://developer.android.com/training/safetynet/deprecation-timeline

如果您对此 SDK 存有疑问,请与其提供方联系。

I search from google , and added exclude to android/app/build.gradle

configurations.all { exclude group: 'com.google.android.gms', module: 'play-services-safetynet' }

and run flutter build appbundle, got error message, even though I update firebase_auth to 5.3.1 and firebase_core to 3.6.0: ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /Users/guoxiujiang/mywork/mydev/lucida/build/app/outputs/mapping/release/missing_rules.txt. ERROR: R8: Missing class com.google.android.gms.safetynet.SafetyNet (referenced from: void com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.lambda$initSafetyNetClient$0(com.google.android.gms.common.GoogleApiAvailability, android.content.Context, com.google.android.gms.tasks.TaskCompletionSource)) Missing class com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.exchangeSafetyNetAttestationResponseForToken(com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse) and 1 other context) Missing class com.google.android.gms.safetynet.SafetyNetClient (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.getToken() and 2 other contexts)

pubspec.yaml

dependencies: flutter: sdk: flutter

The following adds the Cupertino Icons font to your application.

Use with the CupertinoIcons class for iOS style icons.

cupertino_icons: ^1.0.8 sp_util: ^2.0.3 reorderables: ^0.6.0 provider: ^6.0.2 shared_preferences: ^2.0.12 font_awesome_flutter: ^10.7.0 date_format: ^2.0.9 package_info_plus: ^8.0.2 image: ^4.2.0 firebase_core: ^3.6.0 firebase_auth: ^5.3.1 google_sign_in: ^6.2.1 cloud_firestore: ^5.2.1 the_apple_sign_in: ^1.1.1 flutter_screenutil: ^5.9.3 firebase_vertexai: ^0.2.3+3 sqflite: ^2.3.3+1 get: ^4.6.6 path: ^1.9.0 intl: ^0.19.0 omni_datetime_picker: ^2.0.4 dio: ^5.7.0 perfect_freehand: ^2.3.2 ollama_dart: ^0.2.1 flutter_easyloading: ^3.0.5 image_painter: ^0.7.1 path_provider: ^2.1.4 open_file: ^3.5.3 share_plus: ^10.0.2 flutter_email_sender: ^6.0.3 image_picker: ^1.1.2 in_app_purchase: ^3.2.0 flutter_video_info: ^1.3.2 audio_waveforms: ^1.0.5 video_player: ^2.9.1 flutter_pdfview: ^1.3.3

file_picker: git: url: https://github.com/melWiss/flutter_file_picker.git cloud_functions: ^5.1.3 firebase_app_check: ^0.3.1+3

Reproducing the issue

% flutter doctor Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, 3.24.3, on macOS 14.6.1 23G93 darwin-arm64, locale zh-Hans-CN) [✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0) [✓] Xcode - develop for iOS and macOS (Xcode 15.4) [✓] Chrome - develop for the web [✓] Android Studio (version 2024.1) [✓] IntelliJ IDEA Ultimate Edition (version 2023.3.4) [✓] VS Code (version 1.93.1) [✓] Proxy Configuration [✓] Connected device (4 available)
[✓] Network resources

• No issues found!

pubspec.yaml

configurations.all { exclude group: 'com.google.android.gms', module: 'play-services-safetynet' } tried to remove it but it gives error during build release build

run flutter build appbundle , got error message

flutter build appbundle

ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /Users/guoxiujiang/mywork/mydev/lucida/build/app/outputs/mapping/release/missing_rules.txt. ERROR: R8: Missing class com.google.android.gms.safetynet.SafetyNet (referenced from: void com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.lambda$initSafetyNetClient$0(com.google.android.gms.common.GoogleApiAvailability, android.content.Context, com.google.android.gms.tasks.TaskCompletionSource)) Missing class com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.exchangeSafetyNetAttestationResponseForToken(com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse) and 1 other context) Missing class com.google.android.gms.safetynet.SafetyNetClient (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.getToken() and 2 other contexts)

FAILURE: Build failed with an exception.

Firebase Core version

3.6.0

Flutter Version

3.24.3

Relevant Log Output

% flutter build appbundle                                                                                    

ERROR: Missing classes detected while running R8. Please add the missing classes or apply additional keep rules that are generated in /Users/guoxiujiang/mywork/mydev/lucida/build/app/outputs/mapping/release/missing_rules.txt.
ERROR: R8: Missing class com.google.android.gms.safetynet.SafetyNet (referenced from: void com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.lambda$initSafetyNetClient$0(com.google.android.gms.common.GoogleApiAvailability, android.content.Context, com.google.android.gms.tasks.TaskCompletionSource))
Missing class com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.exchangeSafetyNetAttestationResponseForToken(com.google.android.gms.safetynet.SafetyNetApi$AttestationResponse) and 1 other context)
Missing class com.google.android.gms.safetynet.SafetyNetClient (referenced from: com.google.android.gms.tasks.Task com.google.firebase.appcheck.safetynet.internal.SafetyNetAppCheckProvider.getToken() and 2 other contexts)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:minifyReleaseWithR8'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.R8Task$R8Runnable
   > Compilation failed to complete

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

BUILD FAILED in 41s
Running Gradle task 'bundleRelease'...                             42.3s
Gradle task bundleRelease failed with exit code 1
guoxiujiang@guoxiujiangdeMacBook-Pro lucida % flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.3, on macOS 14.6.1 23G93 darwin-arm64, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.3.4)
[✓] VS Code (version 1.93.1)
[✓] Proxy Configuration
[✓] Connected device (4 available)            
[✓] Network resources

• No issues found!
xxxx % flutter --version
Flutter 3.24.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 2663184aa7 (3 weeks ago) • 2024-09-11 16:27:48 -0500
Engine • revision 36335019a8
Tools • Dart 3.5.3 • DevTools 2.37.3
xxxx sample %

Flutter dependencies

```yaml % flutter pub deps -- --style=compact Dart SDK 3.5.3 Flutter SDK 3.24.3 lucida 1.0.5+5 dependencies: - audio_waveforms 1.0.5 [flutter] - cloud_firestore 5.4.2 [cloud_firestore_platform_interface cloud_firestore_web collection firebase_core firebase_core_platform_interface flutter meta] - cloud_functions 5.1.3 [cloud_functions_platform_interface cloud_functions_web firebase_core firebase_core_platform_interface flutter] - cupertino_icons 1.0.8 - date_format 2.0.9 - dio 5.7.0 [async http_parser meta path dio_web_adapter] - file_picker 6.0.1 [flutter flutter_web_plugins flutter_plugin_android_lifecycle plugin_platform_interface ffi path win32] - firebase_app_check 0.3.1+3 [firebase_app_check_platform_interface firebase_app_check_web firebase_core firebase_core_platform_interface flutter] - firebase_auth 5.3.1 [firebase_auth_platform_interface firebase_auth_web firebase_core firebase_core_platform_interface flutter meta] - firebase_core 3.6.0 [firebase_core_platform_interface firebase_core_web flutter meta] - firebase_vertexai 0.2.3+3 [firebase_app_check firebase_auth firebase_core firebase_core_platform_interface flutter google_generative_ai] - flutter 0.0.0 [characters collection material_color_utilities meta vector_math sky_engine] - flutter_easyloading 3.0.5 [flutter flutter_spinkit] - flutter_email_sender 6.0.3 [flutter] - flutter_pdfview 1.3.3 [flutter] - flutter_screenutil 5.9.3 [flutter] - flutter_video_info 1.3.2 [flutter path] - font_awesome_flutter 10.7.0 [flutter] - get 4.6.6 [flutter] - google_sign_in 6.2.1 [flutter google_sign_in_android google_sign_in_ios google_sign_in_platform_interface google_sign_in_web] - image 4.2.0 [archive meta xml] - image_painter 0.7.1 [flutter] - image_picker 1.1.2 [flutter image_picker_android image_picker_for_web image_picker_ios image_picker_linux image_picker_macos image_picker_platform_interface image_picker_windows] - in_app_purchase 3.2.0 [flutter in_app_purchase_android in_app_purchase_platform_interface in_app_purchase_storekit] - intl 0.19.0 [clock meta path] - ollama_dart 0.2.1 [fetch_client freezed_annotation http json_annotation meta] - omni_datetime_picker 2.0.4 [flutter flutter_bloc equatable rxdart] - open_file 3.5.6 [flutter open_file_android open_file_web open_file_ios open_file_mac open_file_windows open_file_linux open_file_platform_interface] - package_info_plus 8.0.2 [ffi flutter flutter_web_plugins http meta path package_info_plus_platform_interface web win32 clock] - path 1.9.0 - path_provider 2.1.4 [flutter path_provider_android path_provider_foundation path_provider_linux path_provider_platform_interface path_provider_windows] - perfect_freehand 2.3.2 [flutter] - provider 6.1.2 [collection flutter nested] - reorderables 0.6.0 [flutter] - share_plus 10.0.2 [cross_file meta mime flutter flutter_web_plugins share_plus_platform_interface file url_launcher_web url_launcher_windows url_launcher_linux url_launcher_platform_interface ffi web win32] - shared_preferences 2.3.2 [flutter shared_preferences_android shared_preferences_foundation shared_preferences_linux shared_preferences_platform_interface shared_preferences_web shared_preferences_windows] - sp_util 2.0.3 [flutter synchronized shared_preferences] - sqflite 2.3.3+1 [flutter sqflite_common path] - the_apple_sign_in 1.1.1 [flutter] - video_player 2.9.1 [flutter html video_player_android video_player_avfoundation video_player_platform_interface video_player_web] dev dependencies: - flutter_lints 4.0.0 [lints] - flutter_test 0.0.0 [flutter test_api matcher path fake_async clock stack_trace vector_math leak_tracker_flutter_testing async boolean_selector characters collection leak_tracker leak_tracker_testing material_color_utilities meta source_span stream_channel string_scanner term_glyph vm_service] transitive dependencies: - _flutterfire_internals 1.3.44 [collection firebase_core firebase_core_platform_interface flutter meta] - archive 3.6.1 [crypto path] - async 2.11.0 [collection meta] - bloc 8.1.4 [meta] - boolean_selector 2.1.1 [source_span string_scanner] - characters 1.3.0 - clock 1.1.1 - cloud_firestore_platform_interface 6.4.2 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface] - cloud_firestore_web 4.3.1 [_flutterfire_internals cloud_firestore_platform_interface collection firebase_core firebase_core_web flutter flutter_web_plugins] - cloud_functions_platform_interface 5.5.37 [firebase_core flutter meta plugin_platform_interface] - cloud_functions_web 4.10.2 [cloud_functions_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins] - collection 1.18.0 - cross_file 0.3.4+2 [meta web] - crypto 3.0.5 [typed_data] - csslib 1.0.0 [source_span] - dio_web_adapter 2.0.0 [dio http_parser meta web] - equatable 2.0.5 [collection meta] - fake_async 1.3.1 [clock collection] - fetch_api 2.2.0 [web] - fetch_client 1.1.2 [fetch_api http] - ffi 2.1.3 - file 7.0.0 [meta path] - file_selector_linux 0.9.2+1 [cross_file file_selector_platform_interface flutter] - file_selector_macos 0.9.4+1 [cross_file file_selector_platform_interface flutter] - file_selector_platform_interface 2.6.2 [cross_file flutter http plugin_platform_interface] - file_selector_windows 0.9.3+2 [cross_file file_selector_platform_interface flutter] - firebase_app_check_platform_interface 0.1.0+38 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface] - firebase_app_check_web 0.1.3+2 [_flutterfire_internals firebase_app_check_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins web] - firebase_auth_platform_interface 7.4.7 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface] - firebase_auth_web 5.13.2 [firebase_auth_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins http_parser meta web] - firebase_core_platform_interface 5.3.0 [collection flutter flutter_test meta plugin_platform_interface] - firebase_core_web 2.18.1 [firebase_core_platform_interface flutter flutter_web_plugins meta web] - fixnum 1.1.0 - flutter_bloc 8.1.6 [bloc flutter provider] - flutter_plugin_android_lifecycle 2.0.22 [flutter] - flutter_spinkit 5.2.1 [flutter] - flutter_web_plugins 0.0.0 [flutter characters collection material_color_utilities meta vector_math] - freezed_annotation 2.4.4 [collection json_annotation meta] - google_generative_ai 0.4.6 [http] - google_identity_services_web 0.3.1+4 [meta web] - google_sign_in_android 6.1.30 [flutter google_sign_in_platform_interface] - google_sign_in_ios 5.7.7 [flutter google_sign_in_platform_interface] - google_sign_in_platform_interface 2.4.5 [flutter plugin_platform_interface] - google_sign_in_web 0.12.4+2 [flutter flutter_web_plugins google_identity_services_web google_sign_in_platform_interface http web] - html 0.15.4 [csslib source_span] - http 1.2.2 [async http_parser meta web] - http_parser 4.0.2 [collection source_span string_scanner typed_data] - image_picker_android 0.8.12+13 [flutter flutter_plugin_android_lifecycle image_picker_platform_interface] - image_picker_for_web 3.0.5 [flutter flutter_web_plugins image_picker_platform_interface mime web] - image_picker_ios 0.8.12 [flutter image_picker_platform_interface] - image_picker_linux 0.2.1+1 [file_selector_linux file_selector_platform_interface flutter image_picker_platform_interface] - image_picker_macos 0.2.1+1 [file_selector_macos file_selector_platform_interface flutter image_picker_platform_interface] - image_picker_platform_interface 2.10.0 [cross_file flutter http plugin_platform_interface] - image_picker_windows 0.2.1+1 [file_selector_platform_interface file_selector_windows flutter image_picker_platform_interface] - in_app_purchase_android 0.3.6+8 [collection flutter in_app_purchase_platform_interface json_annotation] - in_app_purchase_platform_interface 1.4.0 [flutter plugin_platform_interface] - in_app_purchase_storekit 0.3.18+1 [collection flutter in_app_purchase_platform_interface json_annotation] - json_annotation 4.9.0 [meta] - leak_tracker 10.0.5 [clock collection meta path vm_service] - leak_tracker_flutter_testing 3.0.5 [flutter leak_tracker leak_tracker_testing matcher meta] - leak_tracker_testing 3.0.1 [leak_tracker matcher meta] - lints 4.0.0 - matcher 0.12.16+1 [async meta stack_trace term_glyph test_api] - material_color_utilities 0.11.1 [collection] - meta 1.15.0 - mime 1.0.6 - nested 1.0.0 [flutter] - open_file_android 1.0.2 [flutter open_file_platform_interface] - open_file_ios 1.0.2 [flutter open_file_platform_interface] - open_file_linux 0.0.4 [flutter ffi open_file_platform_interface] - open_file_mac 1.0.1 [flutter open_file_platform_interface] - open_file_platform_interface 1.0.2 [flutter plugin_platform_interface] - open_file_web 0.0.3 [flutter flutter_web_plugins open_file_platform_interface web] - open_file_windows 0.0.2 [flutter ffi open_file_platform_interface] - package_info_plus_platform_interface 3.0.1 [flutter meta plugin_platform_interface] - path_provider_android 2.2.10 [flutter path_provider_platform_interface] - path_provider_foundation 2.4.0 [flutter path_provider_platform_interface] - path_provider_linux 2.2.1 [ffi flutter path path_provider_platform_interface xdg_directories] - path_provider_platform_interface 2.1.2 [flutter platform plugin_platform_interface] - path_provider_windows 2.3.0 [ffi flutter path path_provider_platform_interface] - petitparser 6.0.2 [meta] - platform 3.1.5 - plugin_platform_interface 2.1.8 [meta] - rxdart 0.27.7 - share_plus_platform_interface 5.0.0 [cross_file flutter meta mime plugin_platform_interface path_provider uuid] - shared_preferences_android 2.3.2 [flutter shared_preferences_platform_interface] - shared_preferences_foundation 2.5.2 [flutter shared_preferences_platform_interface] - shared_preferences_linux 2.4.1 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface] - shared_preferences_platform_interface 2.4.1 [flutter plugin_platform_interface] - shared_preferences_web 2.4.2 [flutter flutter_web_plugins shared_preferences_platform_interface web] - shared_preferences_windows 2.4.1 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface] - sky_engine 0.0.99 - source_span 1.10.0 [collection path term_glyph] - sprintf 7.0.0 - sqflite_common 2.5.4+3 [synchronized path meta] - stack_trace 1.11.1 [path] - stream_channel 2.1.2 [async] - string_scanner 1.2.0 [source_span] - synchronized 3.3.0+2 - term_glyph 1.2.1 - test_api 0.7.2 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph] - typed_data 1.3.2 [collection] - url_launcher_linux 3.2.0 [flutter url_launcher_platform_interface] - url_launcher_platform_interface 2.3.2 [flutter plugin_platform_interface] - url_launcher_web 2.3.3 [flutter flutter_web_plugins url_launcher_platform_interface web] - url_launcher_windows 3.1.2 [flutter url_launcher_platform_interface] - uuid 4.5.0 [crypto sprintf meta fixnum] - vector_math 2.1.4 - video_player_android 2.7.5 [flutter video_player_platform_interface] - video_player_avfoundation 2.6.1 [flutter video_player_platform_interface] - video_player_platform_interface 6.2.2 [flutter plugin_platform_interface] - video_player_web 2.3.2 [flutter flutter_web_plugins video_player_platform_interface web] - vm_service 14.2.5 - web 1.1.0 - win32 5.5.4 [ffi] - xdg_directories 1.0.4 [meta path] - xml 6.5.0 [collection meta petitparser] ```

Additional context and comments

No response

SelaseKay commented 2 weeks ago

Duplicate of: 12552