Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🐛 [firebase_core] Firebase Core 2.11.0 fails to build on Windows #10931

Closed
insertjokehere opened this issue May 9, 2023 · 21 comments · Fixed by #10972
Closed

🐛 [firebase_core] Firebase Core 2.11.0 fails to build on Windows #10931

insertjokehere opened this issue May 9, 2023 · 21 comments · Fixed by #10972
Labels
plugin: core resolution: fixed A fix has been merged or is pending merge from a PR. type: bug Something isn't working

Comments

@insertjokehere
Copy link

insertjokehere commented May 9, 2023

Bug report

Describe the bug
After adding firebase_core 2.11.0 to a Flutter project that supports Windows, the Windows build will fail to compile if built in release mode:

firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_filesystem_desktop_windows.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant_util.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_reference_counted_future_impl.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_scheduler.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_base64.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_controller_desktop.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_idl_parser.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_callback.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_cleanup_notifier.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_desktop.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_options.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_common.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_date_provider.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_filesystem_desktop_windows.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant_util.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_reference_counted_future_impl.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_scheduler.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_base64.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_controller_desktop.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_idl_parser.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_callback.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_cleanup_notifier.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_desktop.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_options.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_common.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_date_provider.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant_util.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_options.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_date_provider.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_controller_desktop.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_idl_parser.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static void * __cdecl std::_Crt_new_delete::operator new(unsigned __int64)" (__imp_??2_Crt_new_delete@std@@SAPEAX_K@Z) referenced in function "public: static unsigned __int64 __cdecl std::collate<char>::_Getcat(class std::locale::facet const * *,class std::locale const *)" (?_Getcat@?$collate@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static void __cdecl std::_Crt_new_delete::operator delete(void *)" (__imp_??3_Crt_new_delete@std@@SAXPEAX@Z) referenced in function "protected: virtual void * __cdecl std::collate<char>::`scalar deleting destructor'(unsigned int)" (??_G?$collate@D@std@@MEAAPEAXI@Z) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2019: unresolved external symbol __imp__CrtSetReportFile referenced in function "void __cdecl f_b_flatbuffers::SetupDefaultCRTReportMode(void)" (?SetupDefaultCRTReportMode@f_b_flatbuffers@@YAXXZ) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2019: unresolved external symbol __imp__CrtSetReportMode referenced in function "void __cdecl f_b_flatbuffers::SetupDefaultCRTReportMode(void)" (?SetupDefaultCRTReportMode@f_b_flatbuffers@@YAXXZ) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
C:\Git\firebase_test\build\windows\plugins\firebase_core\Release\firebase_core_plugin.dll : fatal error LNK1120: 7 unresolved externals [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]

Steps to reproduce

Steps to reproduce the behavior:

  1. Create a new Flutter project - flutter create --platform windows firebase_test
  2. Add the dependency to pubspec.yaml:
dependencies:
  flutter:
    sdk: flutter
  firebase_core: 2.11.0
  1. flutter pub get
  2. flutter run -d windows --release
  3. Observe the compile error

Expected behavior

Firebase should not break builds on the Windows platform

Sample project

https://github.com/insertjokehere/firebase-compile-error-windows


Additional context

I've tried running flutterfire configure, but it seems like this tool does not support Windows builds yet?


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.9, on Microsoft Windows [Version 10.0.22621.1555], locale en-NZ)
[✓] Windows Version (Installed version of Windows is version 10 or higher)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0-rc2)
[✓] Chrome - develop for the web
[✓] Visual Studio - develop for Windows (Visual Studio Professional 2022 17.2.4)
[✓] Android Studio (version 2021.1)
[✓] VS Code (version 1.78.0)
[✓] Connected device (4 available)
[✓] 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.6
Flutter SDK 3.7.9
firebase_test 1.0.0+1

dependencies:
- cupertino_icons 1.0.5
- firebase_core 2.11.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- flutter 0.0.0 [characters collection js material_color_utilities meta vector_math sky_engine]

dev dependencies:
- flutter_lints 2.0.1 [lints]
- 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]

transitive dependencies:
- async 2.10.0 [collection meta]
- boolean_selector 2.1.1 [source_span string_scanner]
- characters 1.2.1
- clock 1.1.1
- collection 1.17.0
- fake_async 1.3.1 [clock collection]
- firebase_core_platform_interface 4.7.0 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.4.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- js 0.6.5 [meta]
- lints 2.0.1
- matcher 0.12.13 [meta stack_trace]
- material_color_utilities 0.2.0
- meta 1.8.0
- path 1.8.2
- plugin_platform_interface 2.1.4 [meta]
- sky_engine 0.0.99
- source_span 1.9.1 [collection path term_glyph]
- stack_trace 1.11.0 [path]
- stream_channel 2.1.1 [async]
- string_scanner 1.2.0 [source_span]
- 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]
- vector_math 2.1.4

@insertjokehere insertjokehere added Needs Attention This issue needs maintainer attention. type: bug Something isn't working labels May 9, 2023
@insertjokehere
Copy link
Author

Updating Visual Studio seemed to resolve this issue when running in Debug, but when running in release mode we get a different error:

Building Windows application...
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_filesystem_desktop_windows.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant_util.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_reference_counted_future_impl.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_scheduler.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_base64.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_controller_desktop.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_idl_parser.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_callback.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_cleanup_notifier.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_desktop.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_options.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_common.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_date_provider.obj) : error LNK2001: unresolved external symbol __imp__invalid_parameter [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_filesystem_desktop_windows.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant_util.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_reference_counted_future_impl.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_scheduler.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_base64.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_controller_desktop.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_idl_parser.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_callback.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_cleanup_notifier.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_desktop.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_options.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_common.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_date_provider.obj) : error LNK2001: unresolved external symbol __imp__CrtDbgReport [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_variant_util.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_options.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_date_provider.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_controller_desktop.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_idl_parser.obj) : error LNK2001: unresolved external symbol __imp__calloc_dbg [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static void * __cdecl std::_Crt_new_delete::operator new(unsigned __int64)" (__imp_??2_Crt_new_delete@std@@SAPEAX_K@Z) referenced in function "public: static unsigned __int64 __cdecl std::collate<char>::_Getcat(class std::locale::facet const * *,class std::locale const *)" (?_Getcat@?$collate@D@std@@SA_KPEAPEBVfacet@locale@2@PEBV42@@Z) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2019: unresolved external symbol "__declspec(dllimport) public: static void __cdecl std::_Crt_new_delete::operator delete(void *)" (__imp_??3_Crt_new_delete@std@@SAXPEAX@Z) referenced in function "protected: virtual void * __cdecl std::collate<char>::`scalar deleting destructor'(unsigned int)" (??_G?$collate@D@std@@MEAAPEAXI@Z) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2019: unresolved external symbol __imp__CrtSetReportFile referenced in function "void __cdecl f_b_flatbuffers::SetupDefaultCRTReportMode(void)" (?SetupDefaultCRTReportMode@f_b_flatbuffers@@YAXXZ) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
firebase_app.lib(d3d7d08a438878e74aeb2cbaaedfc967_flatbuffers.dir_Debug_util.obj) : error LNK2019: unresolved external symbol __imp__CrtSetReportMode referenced in function "void __cdecl f_b_flatbuffers::SetupDefaultCRTReportMode(void)" (?SetupDefaultCRTReportMode@f_b_flatbuffers@@YAXXZ) [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]
C:\Git\firebase_test\build\windows\plugins\firebase_core\Release\firebase_core_plugin.dll : fatal error LNK1120: 7 unresolved externals [C:\Git\firebase_test\build\windows\plugins\firebase_core\firebase_core_plugin.vcxproj]

@insertjokehere
Copy link
Author

Digging into this a bit more, the CMakeList file for the firebase SDK decides which pre-built library to link against like so:

# Determine the location of the libraries to use based on the platform.
if(ANDROID)
...
elseif(APPLE)
...
elseif(MSVC)
  if(${CMAKE_CL_64})
    set(MSVC_CPU x64)
  else()
    set(MSVC_CPU x86)
  endif()
  if(CMAKE_BUILD_TYPE STREQUAL Release)
    set(MSVC_CONFIG Release)
  else()
    set(MSVC_CONFIG Debug)
  endif()
  set(MSVC_VS_VERSION VS2019)
  set(FIREBASE_SDK_LIBDIR
      ${FIREBASE_CPP_SDK_DIR}/libs/windows/${MSVC_VS_VERSION}/${MSVC_RUNTIME_MODE}/${MSVC_CPU}/${MSVC_CONFIG})
else()  # LINUX
...
endif()

The problem is that CMAKE_BUILD_TYPE isn't set automatically for Flutter builds - Flutter is a multi-config CMake project (flutter/flutter#99595 (comment)) so the firebase SDK defaults to linking against Debug versions of libraries, which doesn't work when we are building in release mode.

My workaround for now is to add set(CMAKE_BUILD_TYPE "Release") to my windows/CMakeLists.txt file before the include(flutter/generated_plugins.cmake), but this is a nasty hack.

@darshankawar darshankawar added the triage Issue is currently being triaged. label May 10, 2023
@darshankawar
Copy link

Thanks for the report and detailed analysis on the issue @insertjokehere
Please check this comment for your reference and see if the flutterfire-desktop repo helps in your case or not.

https://github.com/FirebaseExtended/flutterfire_desktop

@darshankawar darshankawar added blocked: customer-response Waiting for customer response, e.g. more information was requested. and removed Needs Attention This issue needs maintainer attention. labels May 10, 2023
@insertjokehere
Copy link
Author

Hi,

Please check #10171 (comment) comment for your reference

This comment states that "Unfortunately, Firebase does not have official Windows desktop support for production applications" - except that firebase_core v2.11.0 "add support for Windows via Firebase C++ desktop SDK"

We don't actually use flutterfire on Windows - we have our own solution to deal with the lack of desktop support - but we have one code base that supports Android, iOS and Windows, disabling different features where appropriate. I don't need FlutterFire to work on Windows - I understand that support for that is still coming - but I do need it not to prevent me from compiling my app if firebase_core is installed.

Please look at my example code and try to run it in release mode - it should work, but doesn't.

@google-oss-bot google-oss-bot added Needs Attention This issue needs maintainer attention. and removed blocked: customer-response Waiting for customer response, e.g. more information was requested. labels May 11, 2023
@darshankawar
Copy link

Thanks for the feedback. I am seeing the same behavior upon following the steps to replicate.

@darshankawar darshankawar added plugin: core and removed Needs Attention This issue needs maintainer attention. triage Issue is currently being triaged. labels May 11, 2023
@darshankawar darshankawar added the resolution: fixed A fix has been merged or is pending merge from a PR. label May 17, 2023
@abdimussa87
Copy link

Why is this closed? What is the proposed fix, as I'm running into the same issue.

@SebAubin
Copy link

It's closed because it has been merged but it's not on the latest version. Is there a temporary fix for it until it's released?

@abdimussa87
Copy link

Any temporary fix will be of great help, as I'm not able to build my app for release.

@abdimussa87
Copy link

Digging into this a bit more, the CMakeList file for the firebase SDK decides which pre-built library to link against like so:

# Determine the location of the libraries to use based on the platform.
if(ANDROID)
...
elseif(APPLE)
...
elseif(MSVC)
  if(${CMAKE_CL_64})
    set(MSVC_CPU x64)
  else()
    set(MSVC_CPU x86)
  endif()
  if(CMAKE_BUILD_TYPE STREQUAL Release)
    set(MSVC_CONFIG Release)
  else()
    set(MSVC_CONFIG Debug)
  endif()
  set(MSVC_VS_VERSION VS2019)
  set(FIREBASE_SDK_LIBDIR
      ${FIREBASE_CPP_SDK_DIR}/libs/windows/${MSVC_VS_VERSION}/${MSVC_RUNTIME_MODE}/${MSVC_CPU}/${MSVC_CONFIG})
else()  # LINUX
...
endif()

The problem is that CMAKE_BUILD_TYPE isn't set automatically for Flutter builds - Flutter is a multi-config CMake project (flutter/flutter#99595 (comment)) so the firebase SDK defaults to linking against Debug versions of libraries, which doesn't work when we are building in release mode.

My workaround for now is to add set(CMAKE_BUILD_TYPE "Release") to my windows/CMakeLists.txt file before the include(flutter/generated_plugins.cmake), but this is a nasty hack.

I tried your proposed hack, but it gets stuck on building msix files.

@insertjokehere
Copy link
Author

@abdimussa87 #10972 has fixed the bug, but an update with the fix hasn't been released yet. You'll need to either wait for the release, or update your pubspec to use the specific git commit (4897fa0) rather than a released version, like so:

dependencies:
    firebase_core:
        git:
            url: https://github.com/firebase/flutterfire.git
            ref: 4897fa02e2963961f24f1ff3a5b8d5e890e919ce
            path: packages/firebase_core/firebase_core

See https://dart.dev/tools/pub/dependencies#git-packages for docs on this.

@abdimussa87
Copy link

abdimussa87 commented May 18, 2023

@insertjokehere thank you, but this leads to other firebase dependencies not being able to get the firebase_core.
This is the error:

Because firebase_analytics 10.4.1 depends on firebase_core ^2.13.0 and no versions of firebase_analytics match >10.4.1 <11.0.0, firebase_analytics ^10.4.1 requires firebase_core from hosted.
So, because cache_admin depends on both firebase_core from git and firebase_analytics ^10.4.1, version solving failed.
exit code 1

@abdimussa87
Copy link

@insertjokehere What am I doing wrong with what you suggested?

@richard457
Copy link

@insertjokehere thank you, but this leads to other firebase dependencies not being able to get the firebase_core. This is the error:

Because firebase_analytics 10.4.1 depends on firebase_core ^2.13.0 and no versions of firebase_analytics match >10.4.1 <11.0.0, firebase_analytics ^10.4.1 requires firebase_core from hosted.
So, because cache_admin depends on both firebase_core from git and firebase_analytics ^10.4.1, version solving failed.
exit code 1

Have the same issue as abdimussa87

@DmitrySikorsky
Copy link

I have the same issue on 2.13.0 and @insertjokehere's workaround works.

@richard457
Copy link

@DmitrySikorsky how did you manage to get it to work alongside other flutterfire packages e.g firebase_auth etc...?

@DmitrySikorsky
Copy link

@richard457 I need only FCM in my project. I only added that set(CMAKE_BUILD_TYPE "Release") line into the windows/CMakeLists.txt file and it worked. I will remove it when issue is fixed.

@richard457
Copy link

@insertjokehere facing this error warning LNK4099: PDB 'firebase_app.pdb' was not found with when adding

dependencies:
    firebase_core:
        git:
            url: https://github.com/firebase/flutterfire.git
            ref: 4897fa02e2963961f24f1ff3a5b8d5e890e919ce
            path: packages/firebase_core/firebase_core

@richard457
Copy link

Thanks to @DmitrySikorsky but the workaround did not work for me as well

@richard457
Copy link

@insertjokehere facing this error warning LNK4099: PDB 'firebase_app.pdb' was not found with when adding

dependencies:
    firebase_core:
        git:
            url: https://github.com/firebase/flutterfire.git
            ref: 4897fa02e2963961f24f1ff3a5b8d5e890e919ce
            path: packages/firebase_core/firebase_core

mode...
main.login.dart:1
firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_desktop.obj) : warning LNK4099: PDB 'firebase_app.pdb' was not found with 'firebase_app.lib warning LNK4099: PDB 'firebase_app.pdb' was not found with 'firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_app_common.obj)' or zlibstaticd.pdb'; linking object as if no debug info firebase_app.lib(d94e1bff3c0e8414a6679ea91c3e103e_firebase_app.dir_Debug_heartbeat_storage_desktop.obj) : error LNK2019: unresolved external symbol __std_find_trivial_1 referenced in function "char const * __cdecl __std_find_trivial<char const ,unsigned char>(char const *,char const *,unsigned char)"

@richard457
Copy link

@insertjokehere I don't know why this was closed, It is clearly not fixed.

@SzunTibor
Copy link

Persists with 2.13.0.

@firebase firebase locked and limited conversation to collaborators Jun 17, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
plugin: core resolution: fixed A fix has been merged or is pending merge from a PR. type: bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants