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.5k stars 3.92k forks source link

πŸ› [firebase_crashlytics] Does not compile on iOS due to non-modular headers #10621

Closed mrcsilva closed 8 months ago

mrcsilva commented 1 year ago

Bug report

Describe the bug When trying to compile my app for iOS the build process fails with the following error:

Click To Expand ``` Could not build the precompiled application for the device. Swift Compiler Error (Xcode): Include of non-modular header inside framework module 'FirebaseSessions.FIRSESNanoPBHelpers': '/Users/mario/Desktop/ecoforest_control/ios/Pods/Headers/Public/nanopb/pb.h' /Users/mario/Desktop/ecoforest_control/ios/Pods/FirebaseSessions/FirebaseSessions/SourcesObjC/NanoPB/FIRSESNanoPBHelpers.h:28:8 Swift Compiler Error (Xcode): Include of non-modular header inside framework module 'FirebaseSessions.FIRSESNanoPBHelpers': '/Users/mario/Desktop/ecoforest_control/ios/Pods/Headers/Public/nanopb/pb_decode.h' /Users/mario/Desktop/ecoforest_control/ios/Pods/FirebaseSessions/FirebaseSessions/SourcesObjC/NanoPB/FIRSESNanoPBHelpers.h:29:8 Swift Compiler Error (Xcode): Include of non-modular header inside framework module 'FirebaseSessions.FIRSESNanoPBHelpers': '/Users/mario/Desktop/ecoforest_control/ios/Pods/Headers/Public/nanopb/pb_encode.h' /Users/mario/Desktop/ecoforest_control/ios/Pods/FirebaseSessions/FirebaseSessions/SourcesObjC/NanoPB/FIRSESNanoPBHelpers.h:30:8 Swift Compiler Error (Xcode): Include of non-modular header inside framework module 'FirebaseSessions.sessions_nanopb': '/Users/mario/Desktop/ecoforest_control/ios/Pods/Headers/Public/nanopb/pb.h' /Users/mario/Desktop/ecoforest_control/ios/Pods/FirebaseSessions/FirebaseSessions/SourcesObjC/Protogen/nanopb/sessions.nanopb.h:21:9 Swift Compiler Error (Xcode): Could not build Objective-C module 'FirebaseSessions' Error launching application on iPhone. ```

Expected behavior

Xcode should build the app.

Sample project

https://github.com/mrcsilva/crashlytics_error


Flutter doctor

Run flutter doctor and paste the output below:

Click To Expand ``` Doctor summary (to see all details, run flutter doctor -v): [βœ“] Flutter (Channel stable, 3.7.7, on macOS 12.6.2 21G320 darwin-x64, locale en-PT) [βœ“] Android toolchain - develop for Android devices (Android SDK version 32.0.0-rc1) [βœ“] Xcode - develop for iOS and macOS (Xcode 14.2) [βœ“] Chrome - develop for the web [βœ“] Android Studio (version 2021.3) [βœ“] IntelliJ IDEA Community Edition (version 2022.3.3) [βœ“] VS Code (version 1.71.2) [βœ“] Connected device (3 available) ! Error: (null) needs to connect to determine its availability. Check the connection between the device and its companion iPhone, and the connection between the iPhone and Xcode. Both devices may also need to be restarted and unlocked. (code 1) [βœ“] HTTP Host Availability β€’ No issues found! ```

Flutter dependencies

Run flutter pub deps -- --style=compact and paste the output below:

Click To Expand ``` Dart SDK 2.19.4 Flutter SDK 3.7.7 ecoforest_control 2.3.7+58 dependencies: - app_tracking_transparency 2.0.3 [flutter] - collapsible 1.0.0 [flutter] - cupertino_icons 1.0.5 - device_info_plus 7.0.1 [device_info_plus_platform_interface ffi file flutter flutter_web_plugins meta win32] - firebase_analytics 10.1.6 [firebase_analytics_platform_interface firebase_analytics_web firebase_core firebase_core_platform_interface flutter] - firebase_crashlytics 3.0.17 [firebase_core firebase_core_platform_interface firebase_crashlytics_platform_interface flutter stack_trace] - firebase_performance 0.9.0+16 [firebase_core firebase_core_platform_interface firebase_performance_platform_interface firebase_performance_web flutter] - firebase_remote_config 3.0.15 [firebase_core firebase_core_platform_interface firebase_remote_config_platform_interface firebase_remote_config_web flutter] - flutter 0.0.0 [characters collection js material_color_utilities meta vector_math sky_engine] - flutter_localizations 0.0.0 [flutter intl characters clock collection js material_color_utilities meta path vector_math] - fluttericon 2.0.0 [flutter] - font_awesome_flutter 10.4.0 [flutter] - google_mobile_ads 2.3.0 [meta flutter visibility_detector] - http 0.13.5 [async http_parser meta path] - intl 0.17.0 [clock path] - ionicons 0.2.2 [flutter] - mediation_test 0.0.3 [flutter] - path 1.8.2 - provider 6.0.5 [collection flutter nested] - purchases_flutter 4.11.0 [flutter freezed_annotation json_annotation] - shared_preferences 2.0.18 [flutter shared_preferences_android shared_preferences_foundation shared_preferences_linux shared_preferences_platform_interface shared_preferences_web shared_preferences_windows] - sprintf 7.0.0 - sqflite 2.2.6 [flutter sqflite_common path] - url_launcher 6.1.10 [flutter url_launcher_android url_launcher_ios url_launcher_linux url_launcher_macos url_launcher_platform_interface url_launcher_web url_launcher_windows] - weather_icons 3.0.0 [flutter] - webview_flutter 4.0.6 [flutter webview_flutter_android webview_flutter_platform_interface webview_flutter_wkwebview] - wifi_info_flutter 2.0.2 [flutter wifi_info_flutter_platform_interface] dev dependencies: - flutter_launcher_icons 0.12.0 [args checked_yaml cli_util image json_annotation path yaml] - flutter_lints 2.0.1 [lints] - intl_utils 2.8.2 [analyzer archive args dart_style http intl path petitparser yaml] transitive dependencies: - _fe_analyzer_shared 56.0.0 [meta] - _flutterfire_internals 1.0.18 [collection firebase_core firebase_core_platform_interface flutter meta] - analyzer 5.8.0 [_fe_analyzer_shared collection convert crypto glob meta package_config path pub_semver source_span watcher yaml] - archive 3.3.6 [crypto path pointycastle] - args 2.4.0 - async 2.10.0 [collection meta] - boolean_selector 2.1.1 [source_span string_scanner] - characters 1.2.1 - checked_yaml 2.0.2 [json_annotation source_span yaml] - cli_util 0.3.5 [meta path] - clock 1.1.1 - collection 1.17.0 - convert 3.1.1 [typed_data] - crypto 3.0.2 [typed_data] - dart_style 2.3.0 [analyzer args path pub_semver source_span] - device_info_plus_platform_interface 6.0.1 [flutter meta plugin_platform_interface] - fake_async 1.3.1 [clock collection] - ffi 2.0.1 - file 6.1.4 [meta path] - firebase_analytics_platform_interface 3.3.23 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface] - firebase_analytics_web 0.5.1+14 [_flutterfire_internals firebase_analytics_platform_interface firebase_core firebase_core_web flutter flutter_web_plugins js] - firebase_core 2.8.0 [firebase_core_platform_interface firebase_core_web flutter meta] - firebase_core_platform_interface 4.5.3 [collection flutter flutter_test meta plugin_platform_interface] - firebase_core_web 2.2.2 [firebase_core_platform_interface flutter flutter_web_plugins js meta] - firebase_crashlytics_platform_interface 3.3.17 [_flutterfire_internals collection firebase_core flutter meta plugin_platform_interface] - firebase_performance_platform_interface 0.1.1+35 [_flutterfire_internals firebase_core flutter plugin_platform_interface] - firebase_performance_web 0.1.1+24 [_flutterfire_internals firebase_core firebase_core_web firebase_performance_platform_interface flutter flutter_web_plugins js] - firebase_remote_config_platform_interface 1.1.35 [_flutterfire_internals firebase_core flutter meta plugin_platform_interface] - firebase_remote_config_web 1.1.24 [firebase_core firebase_core_web firebase_remote_config_platform_interface flutter flutter_web_plugins js] - flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters collection js matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph] - flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math] - freezed_annotation 2.2.0 [collection json_annotation meta] - glob 2.1.1 [async collection file path string_scanner] - http_parser 4.0.2 [collection source_span string_scanner typed_data] - image 4.0.15 [archive meta xml] - js 0.6.5 [meta] - json_annotation 4.8.0 [meta] - lints 2.0.1 - matcher 0.12.13 [meta stack_trace] - material_color_utilities 0.2.0 - meta 1.8.0 - nested 1.0.0 [flutter] - package_config 2.1.0 [path] - path_provider_linux 2.1.10 [ffi flutter path path_provider_platform_interface xdg_directories] - path_provider_platform_interface 2.0.6 [flutter platform plugin_platform_interface] - path_provider_windows 2.1.5 [ffi flutter path path_provider_platform_interface win32] - petitparser 5.1.0 [meta] - platform 3.1.0 - plugin_platform_interface 2.1.4 [meta] - pointycastle 3.7.0 [collection convert js] - process 4.2.4 [file path platform] - pub_semver 2.1.3 [collection meta] - shared_preferences_android 2.0.17 [flutter shared_preferences_platform_interface] - shared_preferences_foundation 2.1.5 [flutter shared_preferences_platform_interface] - shared_preferences_linux 2.1.5 [file flutter path path_provider_linux path_provider_platform_interface shared_preferences_platform_interface] - shared_preferences_platform_interface 2.1.1 [flutter plugin_platform_interface] - shared_preferences_web 2.0.6 [flutter flutter_web_plugins shared_preferences_platform_interface] - shared_preferences_windows 2.1.5 [file flutter path path_provider_platform_interface path_provider_windows shared_preferences_platform_interface] - sky_engine 0.0.99 - source_span 1.9.1 [collection path term_glyph] - sqflite_common 2.4.3 [synchronized path meta] - stack_trace 1.11.0 [path] - stream_channel 2.1.1 [async] - string_scanner 1.2.0 [source_span] - synchronized 3.0.1 - term_glyph 1.2.1 - test_api 0.4.16 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher] - typed_data 1.3.1 [collection] - url_launcher_android 6.0.25 [flutter url_launcher_platform_interface] - url_launcher_ios 6.1.2 [flutter url_launcher_platform_interface] - url_launcher_linux 3.0.4 [flutter url_launcher_platform_interface] - url_launcher_macos 3.0.4 [flutter url_launcher_platform_interface] - url_launcher_platform_interface 2.1.2 [flutter plugin_platform_interface] - url_launcher_web 2.0.16 [flutter flutter_web_plugins url_launcher_platform_interface] - url_launcher_windows 3.0.5 [flutter url_launcher_platform_interface] - vector_math 2.1.4 - visibility_detector 0.3.3 [flutter] - watcher 1.0.2 [async path] - webview_flutter_android 3.4.2 [flutter webview_flutter_platform_interface] - webview_flutter_platform_interface 2.1.0 [flutter meta plugin_platform_interface] - webview_flutter_wkwebview 3.2.1 [flutter path webview_flutter_platform_interface] - wifi_info_flutter_platform_interface 2.0.1 [plugin_platform_interface flutter] - win32 3.1.3 [ffi] - xdg_directories 1.0.0 [meta path process] - xml 6.2.2 [collection meta petitparser] - yaml 3.1.1 [collection source_span string_scanner] ```

kzrnm commented 8 months ago

@darshankawar Please reopen this issue. In my repository the installation fails even if I comment out platform :ios, '12.0'.

I ran pod install --verbose and got the same results when commenting/uncommenting out the global platform setting at the top of the Podfile. ... But got the correct nanopb installation no matter whether the global platform setting in the Podfile was commented out/uncommented.

As @russellwheatley wrote, commenting out or not did not change the result.

Regardless of the settings, it may succeed or fail.