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

Unable to compile to WASM with sentry_flutter due to incompatibilities with device_info_plus. #2399

Open
Fraa-124 opened this issue Nov 8, 2024 · 3 comments

Comments

@Fraa-124
Copy link

Fraa-124 commented Nov 8, 2024

Platform

Flutter Web

Obfuscation

Enabled

Debug Info

Enabled

Doctor

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, 3.27.0-0.1.pre, on macOS 14.6.1 23G93 darwin-arm64, locale en-ES)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS (Xcode 15.4)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.95.2)
[✓] VS Code (version 1.86.1)

Version

8.9.0

Steps to Reproduce

Related issue can be found here fluttercommunity/plus_plugins#3254

flutter build web --wasm -t lib/main.dart

Expected Result

To compile to WASM, ensure you’re using the latest version of device_info_plus.

Actual Result

In my app, I’ve discovered that when I exclude the following Sentry initialization code, the application successfully compiles to WebAssembly (WASM). However, including this code results in compilation issues, indicating a possible incompatibility with WASM.

await SentryFlutter.init((options) {
          options.dsn = '...';
          options.environment = config.env.toJson();
          options.sampleRate = 1;
          options.dist = buildNumber;
          options.release = 'app@${config.version ?? 'dev'}';
        }, appRunner: () async { 
   ...
});

Are you willing to submit a PR?

None

@vaind
Copy link
Collaborator

vaind commented Nov 9, 2024

Can you provide a minimal reproducible example? WASM compilation should work since #2113

@Fraa-124
Copy link
Author

Fraa-124 commented Nov 9, 2024

The reproducible steps for the device_info_plus issue can be found here fluttercommunity/plus_plugins#325

The problem arises because Sentry is using an outdated version of device_info_plus that is affected by this issue.

The compilation itself is not the issue—apologies if the title was misleading. The problem arises when attempting to start the web app after it has been compiled to wasm.

@getsantry getsantry bot moved this to Waiting for: Product Owner in GitHub Issues with 👀 3 Nov 9, 2024
@vaind
Copy link
Collaborator

vaind commented Nov 9, 2024

The reproducible steps for the device_info_plus issue can be found here fluttercommunity/plus_plugins#325

I guess you meant 3254, not 325. Either way, that's not a reproducible example.

The compilation itself is not the issue—apologies if the title was misleading. The problem arises when attempting to start the web app after it has been compiled to wasm.

Even more reason we need a reproduction, e.g. a minimal app repository, that shows the issue, with clear indication what the issue is (if it's not compilation). It's just guesswork otherwise.

The problem arises because Sentry is using an outdated version of device_info_plus that is affected by this issue.

Sentry Flutter SDK doesn't depend on device_info_plus AFAICT:

`flutter pub deps`

Dart SDK 3.5.3
Flutter SDK 3.24.3
sentry_flutter 8.10.1
├── build_runner 2.4.12
│   ├── analyzer 6.7.0
│   │   ├── _fe_analyzer_shared 72.0.0
│   │   │   └── meta...
│   │   ├── convert 3.1.1
│   │   │   └── typed_data...
│   │   ├── macros 0.1.2-main.4
│   │   │   └── _macros 0.3.2
│   │   ├── collection...
│   │   ├── crypto...
│   │   ├── glob...
│   │   ├── meta...
│   │   ├── package_config...
│   │   ├── path...
│   │   ├── pub_semver...
│   │   ├── source_span...
│   │   ├── watcher...
│   │   └── yaml...
│   ├── args 2.5.0
│   ├── async 2.11.0
│   │   ├── collection...
│   │   └── meta...
│   ├── build 2.4.1
│   │   ├── analyzer...
│   │   ├── async...
│   │   ├── convert...
│   │   ├── crypto...
│   │   ├── glob...
│   │   ├── logging...
│   │   ├── meta...
│   │   ├── package_config...
│   │   └── path...
│   ├── build_config 1.1.1
│   │   ├── checked_yaml 2.0.3
│   │   │   ├── json_annotation...
│   │   │   ├── source_span...
│   │   │   └── yaml...
│   │   ├── json_annotation 4.9.0
│   │   │   └── meta...
│   │   ├── path...
│   │   ├── pubspec_parse...
│   │   └── yaml...
│   ├── build_daemon 4.0.2
│   │   ├── built_collection 5.1.1
│   │   ├── built_value 8.9.2
│   │   │   ├── built_collection...
│   │   │   ├── collection...
│   │   │   ├── fixnum...
│   │   │   └── meta...
│   │   ├── crypto...
│   │   ├── http_multi_server...
│   │   ├── logging...
│   │   ├── path...
│   │   ├── pool...
│   │   ├── shelf...
│   │   ├── shelf_web_socket...
│   │   ├── stream_transform...
│   │   ├── watcher...
│   │   └── web_socket_channel...
│   ├── build_resolvers 2.4.2
│   │   ├── analyzer...
│   │   ├── async...
│   │   ├── build...
│   │   ├── collection...
│   │   ├── convert...
│   │   ├── crypto...
│   │   ├── graphs...
│   │   ├── logging...
│   │   ├── package_config...
│   │   ├── path...
│   │   ├── pool...
│   │   ├── pub_semver...
│   │   ├── stream_transform...
│   │   └── yaml...
│   ├── build_runner_core 7.3.2
│   │   ├── async...
│   │   ├── build...
│   │   ├── build_config...
│   │   ├── build_resolvers...
│   │   ├── collection...
│   │   ├── convert...
│   │   ├── crypto...
│   │   ├── glob...
│   │   ├── graphs...
│   │   ├── json_annotation...
│   │   ├── logging...
│   │   ├── meta...
│   │   ├── package_config...
│   │   ├── path...
│   │   ├── pool...
│   │   ├── timing...
│   │   ├── watcher...
│   │   └── yaml...
│   ├── code_builder 4.10.0
│   │   ├── built_collection...
│   │   ├── built_value...
│   │   ├── collection...
│   │   ├── matcher...
│   │   └── meta...
│   ├── crypto 3.0.5
│   │   └── typed_data 1.3.2
│   │       └── collection...
│   ├── dart_style 2.3.7
│   │   ├── analyzer...
│   │   ├── args...
│   │   ├── collection...
│   │   ├── package_config...
│   │   ├── path...
│   │   ├── pub_semver...
│   │   └── source_span...
│   ├── frontend_server_client 4.0.0
│   │   ├── async...
│   │   └── path...
│   ├── glob 2.1.2
│   │   ├── async...
│   │   ├── collection...
│   │   ├── file...
│   │   ├── path...
│   │   └── string_scanner...
│   ├── graphs 2.3.2
│   │   └── collection...
│   ├── http_multi_server 3.2.1
│   │   └── async...
│   ├── io 1.0.4
│   │   ├── meta...
│   │   ├── path...
│   │   └── string_scanner...
│   ├── js 0.7.1
│   ├── logging 1.2.0
│   ├── mime 1.0.6
│   ├── package_config 2.1.0
│   │   └── path...
│   ├── pool 1.5.1
│   │   ├── async...
│   │   └── stack_trace...
│   ├── pub_semver 2.1.4
│   │   ├── collection...
│   │   └── meta...
│   ├── pubspec_parse 1.3.0
│   │   ├── checked_yaml...
│   │   ├── collection...
│   │   ├── json_annotation...
│   │   ├── pub_semver...
│   │   └── yaml...
│   ├── shelf 1.4.1
│   │   ├── async...
│   │   ├── collection...
│   │   ├── http_parser...
│   │   ├── path...
│   │   ├── stack_trace...
│   │   └── stream_channel...
│   ├── shelf_web_socket 2.0.0
│   │   ├── shelf...
│   │   ├── stream_channel...
│   │   └── web_socket_channel...
│   ├── stream_transform 2.1.0
│   ├── timing 1.0.1
│   │   └── json_annotation...
│   ├── watcher 1.1.0
│   │   ├── async...
│   │   └── path...
│   ├── web_socket_channel 3.0.1
│   │   ├── web_socket 0.1.6
│   │   │   └── web...
│   │   ├── async...
│   │   ├── crypto...
│   │   ├── stream_channel...
│   │   └── web...
│   ├── collection...
│   ├── meta...
│   ├── path...
│   ├── stack_trace...
│   └── yaml...
├── collection 1.18.0
├── ffi 2.1.3
├── ffigen 9.0.1
│   ├── cli_util 0.4.1
│   │   ├── meta...
│   │   └── path...
│   ├── quiver 3.2.2
│   │   └── matcher...
│   ├── yaml_edit 2.2.1
│   │   ├── collection...
│   │   ├── meta...
│   │   ├── source_span...
│   │   └── yaml...
│   ├── args...
│   ├── ffi...
│   ├── file...
│   ├── glob...
│   ├── logging...
│   ├── package_config...
│   ├── path...
│   └── yaml...
├── file 7.0.0
│   ├── meta...
│   └── path...
├── flutter 0.0.0
│   ├── characters 1.3.0
│   ├── material_color_utilities 0.11.1
│   │   └── collection...
│   ├── sky_engine 0.0.99
│   ├── vector_math 2.1.4
│   ├── collection...
│   └── meta...
├── flutter_lints 5.0.0
│   └── lints 5.0.0
├── flutter_localizations 0.0.0
│   ├── intl 0.19.0
│   │   ├── clock...
│   │   ├── meta...
│   │   └── path...
│   ├── characters...
│   ├── clock...
│   ├── collection...
│   ├── flutter...
│   ├── material_color_utilities...
│   ├── meta...
│   ├── path...
│   └── vector_math...
├── flutter_test 0.0.0
│   ├── boolean_selector 2.1.1
│   │   ├── source_span...
│   │   └── string_scanner...
│   ├── fake_async 1.3.1
│   │   ├── clock...
│   │   └── collection...
│   ├── 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...
│   ├── matcher 0.12.16+1
│   │   ├── async...
│   │   ├── meta...
│   │   ├── stack_trace...
│   │   ├── term_glyph...
│   │   └── test_api...
│   ├── source_span 1.10.0
│   │   ├── collection...
│   │   ├── path...
│   │   └── term_glyph...
│   ├── stream_channel 2.1.2
│   │   └── async...
│   ├── string_scanner 1.2.0
│   │   └── source_span...
│   ├── 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...
│   ├── vm_service 14.2.5
│   ├── async...
│   ├── characters...
│   ├── clock...
│   ├── collection...
│   ├── flutter...
│   ├── material_color_utilities...
│   ├── meta...
│   ├── path...
│   ├── stack_trace...
│   └── vector_math...
├── flutter_web_plugins 0.0.0
│   ├── characters...
│   ├── collection...
│   ├── flutter...
│   ├── material_color_utilities...
│   ├── meta...
│   └── vector_math...
├── meta 1.15.0
├── mockito 5.4.4
│   ├── source_gen 1.5.0
│   │   ├── analyzer...
│   │   ├── async...
│   │   ├── build...
│   │   ├── dart_style...
│   │   ├── glob...
│   │   ├── path...
│   │   ├── source_span...
│   │   └── yaml...
│   ├── analyzer...
│   ├── build...
│   ├── code_builder...
│   ├── collection...
│   ├── dart_style...
│   ├── matcher...
│   ├── meta...
│   ├── path...
│   └── test_api...
├── package_info_plus 8.0.2
│   ├── clock 1.1.1
│   ├── package_info_plus_platform_interface 3.0.1
│   │   ├── plugin_platform_interface 2.1.8
│   │   │   └── meta...
│   │   ├── flutter...
│   │   └── meta...
│   ├── path 1.9.0
│   ├── web 1.0.0
│   ├── win32 5.5.4
│   │   └── ffi...
│   ├── ffi...
│   ├── flutter...
│   ├── flutter_web_plugins...
│   ├── http...
│   └── meta...
├── remove_from_coverage 2.0.0
│   └── args...
├── sentry 8.10.1
│   ├── http 1.2.2
│   │   ├── http_parser 4.0.2
│   │   │   ├── collection...
│   │   │   ├── source_span...
│   │   │   ├── string_scanner...
│   │   │   └── typed_data...
│   │   ├── async...
│   │   ├── meta...
│   │   └── web...
│   ├── stack_trace 1.11.1
│   │   └── path...
│   ├── uuid 4.5.0
│   │   ├── fixnum 1.1.0
│   │   ├── sprintf 7.0.0
│   │   ├── crypto...
│   │   └── meta...
│   ├── collection...
│   └── meta...
└── yaml 3.1.2
    ├── collection...
    ├── source_span...
    └── string_scanner...

@getsantry getsantry bot removed the status in GitHub Issues with 👀 3 Nov 9, 2024
@buenaflor buenaflor moved this from Needs Discussion to Needs More Information in Mobile & Cross Platform SDK Nov 21, 2024
@buenaflor buenaflor moved this to Waiting for: Community in GitHub Issues with 👀 3 Nov 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Waiting for: Community
Status: Needs More Information
Development

No branches or pull requests

2 participants