Desdaemon / flutter_rust_bridge_template

Template for Flutter + Rust integration with flutter_rust_bridge.
https://desdaemon.github.io/flutter_rust_bridge_template/
Apache License 2.0
120 stars 63 forks source link

Template Fails to Run on macOS Release Mode #42

Closed JosiahMendes closed 1 year ago

JosiahMendes commented 1 year ago

Hi, thanks for your work on the template, it makes starting with flutter_rust_bridge a lot easier.

Problem

One issue that I'm facing is with regards to running on release mode, on both the template and the app I'm working on. On the template, the following backtrace is produced when attempting to run in release mode by running flutter run --release

flutter: Invalid argument(s): Failed to lookup symbol 'store_dart_post_cobject': dlsym(RTLD_DEFAULT, store_dart_post_cobject): symbol not found
flutter: #0      DynamicLibrary.lookup (dart:ffi-patch/ffi_dynamic_library_patch.dart:34)
flutter: #1      NativeWire._store_dart_post_cobjectPtr (package:flutter_rust_bridge_template/bridge_generated.io.dart:59)
flutter: #2      NativeWire._store_dart_post_cobject (package:flutter_rust_bridge_template/bridge_generated.io.dart)
flutter: #3      NativeWire.store_dart_post_cobject (package:flutter_rust_bridge_template/bridge_generated.io.dart)
flutter: #4      StoreDartPostCObjectExt.storeDartPostCObject (package:flutter_rust_bridge/src/ffi/io.dart:18)
flutter: #5      FlutterRustBridgeBase._setUpRustToDartComm (package:flutter_rust_bridge/src/basic.dart:60)
flutter: #6      new FlutterRustBridgeBase (package:flutter_rust_bridge/src/basic.dart:28)
flutter: #7      new NativePlatform (package:flutter_rust_bridge_template/bridge_generated.io.dart:15)
flutter: #8      new NativeImpl (package:flutter_rust_bridge_template/bridge_generated.dart:16)
flutter: #9      api (package:flutter_rust_bridge_template/ffi.dart:20)
flutter: #10     _MyHomePageState.initState (package:flutter_rust_bridge_template/main.dart)
flutter: #11     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5015)
flutter: #12     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #13     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #14     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #15     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #16     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #17     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #18     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #19     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #20     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #21     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #22     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #23     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #24     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #25     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #26     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #27     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #28     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #29     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #30     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #31     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
flutter: #32     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #33     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #34     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041)
flutter: #35     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #36     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #37     MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:6435)
flutter: #38     MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6447)
flutter: #39     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #40     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #41     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #42     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
flutter: #43     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #44     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #45     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041)
flutter: #46     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #47     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #48     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #49     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #50     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #51     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #52     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #53     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
flutter: #54     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #55     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #56     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041)
flutter: #57     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #58     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #59     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #60     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #61     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #62     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #63     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #64     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
flutter: #65     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #66     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #67     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041)
flutter: #68     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #69     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #70     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #71     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #72     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #73     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #74     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #75     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
flutter: #76     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #77     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #78     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041)
flutter: #79     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #80     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #81     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #82     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #83     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #84     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #85     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #86     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #87     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #88     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4904)
flutter: #89     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5050)
flutter: #90     Element.rebuild (package:flutter/src/widgets/framework.dart:4604)
flutter: #91     ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4859)
flutter: #92     StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5041)
flutter: #93     ComponentElement.mount (package:flutter/src/widgets/framework.dart:4853)
flutter: #94     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #95     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #96     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)
flutter: #97     Element.inflateWidget (package:flutter/src/widgets/framework.dart:3863)
flutter: #98     Element.updateChild (package:flutter/src/widgets/framework.dart:3592)
flutter: #99     SingleChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:6300)

This error seems to have been fairly common, I've tried following the troubleshooting advice and changing the stripping settings according to the different suggestions but I get the same errors. Is this reproducible on your side/any ideas for solving it?

System Info

rustc 1.67.1, flutter 3.3.4, macOS 13.1, 2018 Intel Macbook Pro

Desdaemon commented 1 year ago

I changed the template recently to use static linking on MacOS in order to resolve issues like this, so if it's still not working I'll try to fix it.

github-actions[bot] commented 1 year ago

This issue has been marked as stale because it has no activity recently. Please remove the 'stale' label, or comment if the issue persists.

Desdaemon commented 1 year ago

Fixed by e9c36d6